diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6-1.js new file mode 100644 index 0000000000..96289c41b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-1.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: "7.6-1", + + path: "TestCases/chapter07/7.6/7.6-1.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u006eull (null)", + + test: function testcase() { + try { + eval("var \u006eull = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6-10.js new file mode 100644 index 0000000000..8771ee1ea9 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-10.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: "7.6-10", + + path: "TestCases/chapter07/7.6/7.6-10.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: n\u0065w (new)", + + test: function testcase() { + try { + eval("var n\u0065w = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6-11.js new file mode 100644 index 0000000000..24941e1de5 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-11.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: "7.6-11", + + path: "TestCases/chapter07/7.6/7.6-11.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: va\u0072 (var)", + + test: function testcase() { + try { + eval("var va\u0072 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6-12.js new file mode 100644 index 0000000000..b1f0802308 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-12.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: "7.6-12", + + path: "TestCases/chapter07/7.6/7.6-12.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0074\u0072\u0079 (try)", + + test: function testcase() { + try { + eval("var \u0074\u0072\u0079 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6-13.js new file mode 100644 index 0000000000..b218485308 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-13.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: "7.6-13", + + path: "TestCases/chapter07/7.6/7.6-13.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0063atch (catch)", + + test: function testcase() { + try { + eval("var \u0063atch = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6-14.js new file mode 100644 index 0000000000..d47524297b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-14.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: "7.6-14", + + path: "TestCases/chapter07/7.6/7.6-14.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: fina\u006cly (finally)", + + test: function testcase() { + try { + eval("var fina\u006cly = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6-15.js new file mode 100644 index 0000000000..6404428260 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-15.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: "7.6-15", + + path: "TestCases/chapter07/7.6/7.6-15.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: retur\u006e (return)", + + test: function testcase() { + try { + eval("var retur\u006e = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6-16.js new file mode 100644 index 0000000000..c45fa23dda --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-16.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: "7.6-16", + + path: "TestCases/chapter07/7.6/7.6-16.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0076\u006f\u0069\u0064 (void)", + + test: function testcase() { + try { + eval("var \u0076\u006f\u0069\u0064 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-17.js b/test/suite/ietestcenter/chapter07/7.6/7.6-17.js new file mode 100644 index 0000000000..eb299b63c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-17.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: "7.6-17", + + path: "TestCases/chapter07/7.6/7.6-17.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0063ontinue (continue)", + + test: function testcase() { + try { + eval("var \u0063ontinue = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-18.js b/test/suite/ietestcenter/chapter07/7.6/7.6-18.js new file mode 100644 index 0000000000..45d05e9318 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-18.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: "7.6-18", + + path: "TestCases/chapter07/7.6/7.6-18.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: f\u006fr (for)", + + test: function testcase() { + try { + eval("var f\u006fr = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-19.js b/test/suite/ietestcenter/chapter07/7.6/7.6-19.js new file mode 100644 index 0000000000..50be069221 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-19.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: "7.6-19", + + path: "TestCases/chapter07/7.6/7.6-19.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: switc\u0068 (switch)", + + test: function testcase() { + try { + eval("var switc\u0068 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6-2.js new file mode 100644 index 0000000000..01c4206899 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-2.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: "7.6-2", + + path: "TestCases/chapter07/7.6/7.6-2.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: tr\u0075e (true)", + + test: function testcase() { + try { + eval("var tr\u0075e = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-20.js b/test/suite/ietestcenter/chapter07/7.6/7.6-20.js new file mode 100644 index 0000000000..c78625f101 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-20.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: "7.6-20", + + path: "TestCases/chapter07/7.6/7.6-20.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0077\u0068\u0069\u006c\u0065 (while)", + + test: function testcase() { + try { + eval("var \u0077\u0068\u0069\u006c\u0065 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-21.js b/test/suite/ietestcenter/chapter07/7.6/7.6-21.js new file mode 100644 index 0000000000..7442133dec --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-21.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: "7.6-21", + + path: "TestCases/chapter07/7.6/7.6-21.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0064ebugger (debugger)", + + test: function testcase() { + try { + eval("var \u0064ebugger = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-22.js b/test/suite/ietestcenter/chapter07/7.6/7.6-22.js new file mode 100644 index 0000000000..e625d07e03 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-22.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: "7.6-22", + + path: "TestCases/chapter07/7.6/7.6-22.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: func\u0074ion (function)", + + test: function testcase() { + try { + eval("var func\u0074ion = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-23.js b/test/suite/ietestcenter/chapter07/7.6/7.6-23.js new file mode 100644 index 0000000000..31ee41e808 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-23.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: "7.6-23", + + path: "TestCases/chapter07/7.6/7.6-23.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: thi\u0073 (this)", + + test: function testcase() { + try { + eval("var thi\u0073 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-24.js b/test/suite/ietestcenter/chapter07/7.6/7.6-24.js new file mode 100644 index 0000000000..d5f8e188ae --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-24.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: "7.6-24", + + path: "TestCases/chapter07/7.6/7.6-24.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0069\u0066 (if)", + + test: function testcase() { + try { + eval("var \u0069\u0066 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-25.js b/test/suite/ietestcenter/chapter07/7.6/7.6-25.js new file mode 100644 index 0000000000..8d2ab76bd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-25.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: "7.6-25", + + path: "TestCases/chapter07/7.6/7.6-25.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0077ith (with)", + + test: function testcase() { + try { + eval("var \u0077ith = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-26.js b/test/suite/ietestcenter/chapter07/7.6/7.6-26.js new file mode 100644 index 0000000000..37d17bf4d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-26.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: "7.6-26", + + path: "TestCases/chapter07/7.6/7.6-26.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: def\u0061ult (default)", + + test: function testcase() { + try { + eval("var def\u0061ult = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-27.js b/test/suite/ietestcenter/chapter07/7.6/7.6-27.js new file mode 100644 index 0000000000..48acc83b7c --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-27.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: "7.6-27", + + path: "TestCases/chapter07/7.6/7.6-27.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: thro\u0077 (throw)", + + test: function testcase() { + try { + eval("var thro\u0077 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-28.js b/test/suite/ietestcenter/chapter07/7.6/7.6-28.js new file mode 100644 index 0000000000..653140a8d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-28.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: "7.6-28", + + path: "TestCases/chapter07/7.6/7.6-28.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0069\u006e (in)", + + test: function testcase() { + try { + eval("var \u0069\u006e = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-29.js b/test/suite/ietestcenter/chapter07/7.6/7.6-29.js new file mode 100644 index 0000000000..3156251533 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-29.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: "7.6-29", + + path: "TestCases/chapter07/7.6/7.6-29.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0064elete (delete)", + + test: function testcase() { + try { + eval("var \u0064elete = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6-3.js new file mode 100644 index 0000000000..74bba8682f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-3.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: "7.6-3", + + path: "TestCases/chapter07/7.6/7.6-3.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: fals\u0065 (false)", + + test: function testcase() { + try { + eval("var fals\u0065 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-30.js b/test/suite/ietestcenter/chapter07/7.6/7.6-30.js new file mode 100644 index 0000000000..bd39ae3c07 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-30.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: "7.6-30", + + path: "TestCases/chapter07/7.6/7.6-30.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: cla\u0073s (class)", + + test: function testcase() { + try { + eval("var cla\u0073s = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-31.js b/test/suite/ietestcenter/chapter07/7.6/7.6-31.js new file mode 100644 index 0000000000..db6a5e6be2 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-31.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: "7.6-31", + + path: "TestCases/chapter07/7.6/7.6-31.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: extend\u0073 (extends)", + + test: function testcase() { + try { + eval("var extend\u0073 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-32.js b/test/suite/ietestcenter/chapter07/7.6/7.6-32.js new file mode 100644 index 0000000000..3ace9089fd --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-32.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: "7.6-32", + + path: "TestCases/chapter07/7.6/7.6-32.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0065\u006e\u0075\u006d (enum)", + + test: function testcase() { + try { + eval("var \u0065\u006e\u0075\u006d = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-33.js b/test/suite/ietestcenter/chapter07/7.6/7.6-33.js new file mode 100644 index 0000000000..a7d76b5691 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-33.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: "7.6-33", + + path: "TestCases/chapter07/7.6/7.6-33.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0073uper (super)", + + test: function testcase() { + try { + eval("var \u0073uper = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-34.js b/test/suite/ietestcenter/chapter07/7.6/7.6-34.js new file mode 100644 index 0000000000..32097a2a29 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-34.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: "7.6-34", + + path: "TestCases/chapter07/7.6/7.6-34.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: co\u006est (const)", + + test: function testcase() { + try { + eval("var co\u006est = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-35.js b/test/suite/ietestcenter/chapter07/7.6/7.6-35.js new file mode 100644 index 0000000000..9b56248625 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-35.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: "7.6-35", + + path: "TestCases/chapter07/7.6/7.6-35.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: expor\u0074 (export)", + + test: function testcase() { + try { + eval("var expor\u0074 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-36.js b/test/suite/ietestcenter/chapter07/7.6/7.6-36.js new file mode 100644 index 0000000000..4324af39fb --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-36.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: "7.6-36", + + path: "TestCases/chapter07/7.6/7.6-36.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0069\u006d\u0070\u006f\u0072\u0074 (import)", + + test: function testcase() { + try { + eval("var \u0069\u006d\u0070\u006f\u0072\u0074 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6-4.js new file mode 100644 index 0000000000..30f2679e5d --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-4.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: "7.6-4", + + path: "TestCases/chapter07/7.6/7.6-4.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0062\u0072\u0065\u0061\u006b (break)", + + test: function testcase() { + try { + eval("var \u0062\u0072\u0065\u0061\u006b = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6-5.js new file mode 100644 index 0000000000..f6065b956f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-5.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: "7.6-5", + + path: "TestCases/chapter07/7.6/7.6-5.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0063ase (case)", + + test: function testcase() { + try { + eval("var \u0063ase = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6-6.js new file mode 100644 index 0000000000..b8c0f766f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-6.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: "7.6-6", + + path: "TestCases/chapter07/7.6/7.6-6.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: insta\u006eceof (instanceof)", + + test: function testcase() { + try { + eval("var insta\u006eceof = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6-7.js new file mode 100644 index 0000000000..eddfa9f41f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-7.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: "7.6-7", + + path: "TestCases/chapter07/7.6/7.6-7.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: typeo\u0066 (typeof)", + + test: function testcase() { + try { + eval("var typeo\u0066 = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6-8.js new file mode 100644 index 0000000000..78b4ffa946 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-8.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: "7.6-8", + + path: "TestCases/chapter07/7.6/7.6-8.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0064\u006f (do)", + + test: function testcase() { + try { + eval("var \u0064\u006f = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6-9.js new file mode 100644 index 0000000000..4b2e42ee28 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6-9.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: "7.6-9", + + path: "TestCases/chapter07/7.6/7.6-9.js", + + description: "7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: \u0065lse (else) (null)", + + test: function testcase() { + try { + eval("var \u0065lse = 123;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-1.js new file mode 100644 index 0000000000..2b2ffeead5 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-1.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-1", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-1.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: null, true, false", + + test: function testcase(){ + var tokenCodes = { + null: 0, + true: 1, + false: 2 + }; + var arr = [ + 'null', + 'true', + 'false' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-10.js new file mode 100644 index 0000000000..2a9d0c0700 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-10.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-10", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-10.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: in, try, class", + + test: function testcase(){ + var tokenCodes = { + in: 0, + try: 1, + class: 2 + }; + var arr = [ + 'in', + 'try', + 'class' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-11.js new file mode 100644 index 0000000000..1a78ca3e0d --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-11.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-11", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-11.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: enum, extends, super", + + test: function testcase(){ + var tokenCodes = { + enum: 0, + extends: 1, + super: 2 + }; + var arr = [ + 'enum', + 'extends', + 'super' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-12.js new file mode 100644 index 0000000000..2b670edae1 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-12.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-12", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-12.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: const, export, import", + + test: function testcase(){ + var tokenCodes = { + const: 0, + export: 1, + import: 2 + }; + var arr = [ + 'const', + 'export', + 'import' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-13.js new file mode 100644 index 0000000000..fd7624b500 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-13.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-13", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-13.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: implements, let, private", + + test: function testcase(){ + var tokenCodes = { + implements: 0, + let: 1, + private: 2 + }; + var arr = [ + 'implements', + 'let', + 'private' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-14.js new file mode 100644 index 0000000000..d79dd6cabd --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-14.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-14", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-14.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: public, yield, interface", + + test: function testcase(){ + var tokenCodes = { + public: 0, + yield: 1, + interface: 2 + }; + var arr = [ + 'public', + 'yield', + 'interface' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-15.js new file mode 100644 index 0000000000..bc3c586c6e --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-15.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-15", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-15.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: package, protected, static", + + test: function testcase(){ + var tokenCodes = { + package: 0, + protected: 1, + static: 2 + }; + var arr = [ + 'package', + 'protected', + 'static' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-16.js new file mode 100644 index 0000000000..e3c7fa6454 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-16.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-16", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-16.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: undeefined, NaN, Infinity", + + test: function testcase(){ + var tokenCodes = { + undefined: 0, + NaN: 1, + Infinity: 2 + }; + var arr = [ + 'undefined', + 'NaN', + 'Infinity' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-2.js new file mode 100644 index 0000000000..6272e7a1db --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-2.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-2", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-2.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: break, case, do", + + test: function testcase(){ + var tokenCodes = { + break: 0, + case: 1, + do: 2 + }; + var arr = [ + 'break', + 'case', + 'do' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-3.js new file mode 100644 index 0000000000..bf506b0a7d --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-3.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-3", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-3.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: instanceof, typeof, else", + + test: function testcase(){ + var tokenCodes = { + instanceof: 0, + typeof: 1, + else: 2 + }; + var arr = [ + 'instanceof', + 'typeof', + 'else' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-4.js new file mode 100644 index 0000000000..9d3c27015a --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-4.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-4", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-4.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: new, var, catch", + + test: function testcase(){ + var tokenCodes = { + new: 0, + var: 1, + catch: 2 + }; + var arr = [ + 'new', + 'var', + 'catch' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-5.js new file mode 100644 index 0000000000..1f81ab4b5f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-5.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-5", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-5.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: finally, return, void", + + test: function testcase(){ + var tokenCodes = { + finally: 0, + return: 1, + void: 2 + }; + var arr = [ + 'finally', + 'return', + 'void' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-6.js new file mode 100644 index 0000000000..39f41563cd --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-6.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-6", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-6.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: continue, for, switch", + + test: function testcase(){ + var tokenCodes = { + continue: 0, + for: 1, + switch: 2 + }; + var arr = [ + 'continue', + 'for', + 'switch' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-7.js new file mode 100644 index 0000000000..c3fcb0599d --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-7.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-7", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-7.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: while, debugger, function", + + test: function testcase(){ + var tokenCodes = { + while: 0, + debugger: 1, + function: 2 + }; + var arr = [ + 'while' , + 'debugger', + 'function' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-8.js new file mode 100644 index 0000000000..6b024aa2eb --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-8.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-8", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-8.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: this, with, default", + + test: function testcase(){ + var tokenCodes = { + this: 0, + with: 1, + default: 2 + }; + var arr = [ + 'this', + 'with', + 'default' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-9.js new file mode 100644 index 0000000000..7b96bf72b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-1-9.js @@ -0,0 +1,54 @@ +/// 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: "7.6.1-1-9", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-1-9.js", + + description: "Allow reserved words as property names at object initialization, verified with hasOwnProperty: if, throw, delete", + + test: function testcase(){ + var tokenCodes = { + if: 0, + throw: 1, + delete: 2 + }; + var arr = [ + 'if', + 'throw', + 'delete' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; +}, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-1.js new file mode 100644 index 0000000000..f9df5829a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-1.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-1", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-1.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: null, true, false", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.null = 0; + tokenCodes.true = 1; + tokenCodes.false = 2; + var arr = [ + 'null', + 'true', + 'false' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-10.js new file mode 100644 index 0000000000..6a837a97d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-10.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-10", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-10.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: in, try, class", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.in = 0; + tokenCodes.try = 1; + tokenCodes.class = 2; + var arr = [ + 'in', + 'try', + 'class' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-11.js new file mode 100644 index 0000000000..67d7b1fc5b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-11.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-11", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-11.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: enum, extends, super", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.enum = 0; + tokenCodes.extends = 1; + tokenCodes.super = 2; + var arr = [ + 'enum', + 'extends', + 'super' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-12.js new file mode 100644 index 0000000000..44deea9175 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-12.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-12", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-12.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: const, export, import", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.const = 0; + tokenCodes.export = 1; + tokenCodes.import = 2; + var arr = [ + 'const', + 'export', + 'import' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-13.js new file mode 100644 index 0000000000..8c35381328 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-13.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-13", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-13.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: implements, let, private", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.implements = 0; + tokenCodes.let = 1; + tokenCodes.private = 2; + var arr = [ + 'implements', + 'let', + 'private' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-14.js new file mode 100644 index 0000000000..7a32f27bc4 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-14.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-14", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-14.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: public, yield, interface", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.public = 0; + tokenCodes.yield = 1; + tokenCodes.interface = 2; + var arr = [ + 'public', + 'yield', + 'interface' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-15.js new file mode 100644 index 0000000000..99b6756109 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-15.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-15", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-15.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: package, protected, static", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.package = 0; + tokenCodes.protected = 1; + tokenCodes.static = 2; + var arr = [ + 'package', + 'protected', + 'static' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-16.js new file mode 100644 index 0000000000..e5a15e16cb --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-16.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-16", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-16.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: undefined, NaN, Infinity", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.undefined = 0; + tokenCodes.NaN = 1; + tokenCodes.Infinity = 2; + var arr = [ + 'undefined', + 'NaN', + 'Infinity' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-2.js new file mode 100644 index 0000000000..b5592adc9f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-2.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-2", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-2.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: break, case, do", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.break = 0; + tokenCodes.case = 1; + tokenCodes.do = 2; + var arr = [ + 'break', + 'case', + 'do' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-3.js new file mode 100644 index 0000000000..e4c47ecd86 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-3.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-3", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-3.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: instanceof, typeof, else", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.instanceof = 0; + tokenCodes.typeof = 1; + tokenCodes.else = 2; + var arr = [ + 'instanceof', + 'typeof', + 'else' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-4.js new file mode 100644 index 0000000000..77b9c10e5b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-4.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-4", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-4.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: new, var, catch", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.new = 0; + tokenCodes.var = 1; + tokenCodes.catch = 2; + var arr = [ + 'new', + 'var', + 'catch' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-5.js new file mode 100644 index 0000000000..5cf916bb3b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-5.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-5", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-5.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: finally, return, void", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.finally = 0; + tokenCodes.return = 1; + tokenCodes.void = 2; + var arr = [ + 'finally', + 'return', + 'void' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-6.js new file mode 100644 index 0000000000..284cab8cfa --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-6.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-6", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-6.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: continue, for, switch", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.continue = 0; + tokenCodes.for = 1; + tokenCodes.switch = 2; + var arr = [ + 'continue', + 'for', + 'switch' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-7.js new file mode 100644 index 0000000000..1bac6447e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-7.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-7", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-7.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: while, debugger, function", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.while = 0; + tokenCodes.debugger = 1; + tokenCodes.function = 2; + var arr = [ + 'while' , + 'debugger', + 'function' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-8.js new file mode 100644 index 0000000000..37b32956ce --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-8.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-8", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-8.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: this, with, default", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.this = 0; + tokenCodes.with = 1; + tokenCodes.default = 2; + var arr = [ + 'this', + 'with', + 'default' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-9.js new file mode 100644 index 0000000000..60f2e19e8c --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-2-9.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-2-9", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-2-9.js", + + description: "Allow reserved words as property names by dot operator assignment, verified with hasOwnProperty: if, throw, delete", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.if = 0; + tokenCodes.throw = 1; + tokenCodes.delete = 2; + var arr = [ + 'if', + 'throw', + 'delete' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-1.js new file mode 100644 index 0000000000..49b9bcfa7f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-1.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-1", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-1.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: null, true, false", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['null'] = 0; + tokenCodes['true'] = 1; + tokenCodes['false'] = 2; + var arr = [ + 'null', + 'true', + 'false' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-10.js new file mode 100644 index 0000000000..c445008073 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-10.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-10", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-10.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: in, try, class", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['in'] = 0; + tokenCodes['try'] = 1; + tokenCodes['class'] = 2; + var arr = [ + 'in', + 'try', + 'class' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-11.js new file mode 100644 index 0000000000..f9d82a24bc --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-11.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-11", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-11.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: enum, extends, super", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['enum'] = 0; + tokenCodes['extends'] = 1; + tokenCodes['super'] = 2; + var arr = [ + 'enum', + 'extends', + 'super' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-12.js new file mode 100644 index 0000000000..f9cd1787cb --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-12.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-12", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-12.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: const, export, import", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['const'] = 0; + tokenCodes['export'] = 1; + tokenCodes['import'] = 2; + var arr = [ + 'const', + 'export', + 'import' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-13.js new file mode 100644 index 0000000000..de911a5db2 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-13.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-13", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-13.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: implements, let, private", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['implements'] = 0; + tokenCodes['let'] = 1; + tokenCodes['private'] = 2; + var arr = [ + 'implements', + 'let', + 'private' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-14.js new file mode 100644 index 0000000000..02197ef64f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-14.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-14", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-14.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: public, yield, interface", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['public'] = 0; + tokenCodes['yield'] = 1; + tokenCodes['interface'] = 2; + var arr = [ + 'public', + 'yield', + 'interface' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-15.js new file mode 100644 index 0000000000..6eba3a2068 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-15.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-15", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-15.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: package, protected, static", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['package'] = 0; + tokenCodes['protected'] = 1; + tokenCodes['static'] = 2; + var arr = [ + 'package', + 'protected', + 'static' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-16.js new file mode 100644 index 0000000000..c3c6ae6f4e --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-16.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-16", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-16.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: undefined, NaN, Infinity", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['undefined'] = 0; + tokenCodes['NaN'] = 1; + tokenCodes['Infinity'] = 2; + var arr = [ + 'undefined', + 'NaN', + 'Infinity' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-2.js new file mode 100644 index 0000000000..ad920fc6f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-2.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-2", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-2.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: break, case, do", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['break'] = 0; + tokenCodes['case'] = 1; + tokenCodes['do'] = 2; + var arr = [ + 'break', + 'case', + 'do' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-3.js new file mode 100644 index 0000000000..6edd6fcb0a --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-3.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-3", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-3.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: instanceof, typeof, else", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['instanceof'] = 0; + tokenCodes['typeof'] = 1; + tokenCodes['else'] = 2; + var arr = [ + 'instanceof', + 'typeof', + 'else' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-4.js new file mode 100644 index 0000000000..b71040e09b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-4.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-4", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-4.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: new, var, catch", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['new'] = 0; + tokenCodes['var'] = 1; + tokenCodes['catch'] = 2; + var arr = [ + 'new', + 'var', + 'catch' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-5.js new file mode 100644 index 0000000000..883b3938d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-5.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-5", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-5.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: finally, return, void", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['finally'] = 0; + tokenCodes['return'] = 1; + tokenCodes['void'] = 2; + var arr = [ + 'finally', + 'return', + 'void' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-6.js new file mode 100644 index 0000000000..d5a5b581ec --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-6.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-6", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-6.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: continue, for, switch", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['continue'] = 0; + tokenCodes['for'] = 1; + tokenCodes['switch'] = 2; + var arr = [ + 'continue', + 'for', + 'switch' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-7.js new file mode 100644 index 0000000000..3b520e70cf --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-7.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-7", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-7.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: while, debugger, function", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['while'] = 0; + tokenCodes['debugger'] = 1; + tokenCodes['function'] = 2; + var arr = [ + 'while', + 'debugger', + 'function' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-8.js new file mode 100644 index 0000000000..ea849d87cc --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-8.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-8", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-8.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: this, with, default", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['this'] = 0; + tokenCodes['with'] = 1; + tokenCodes['default'] = 2; + var arr = [ + 'this', + 'with', + 'default' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-9.js new file mode 100644 index 0000000000..8591f566a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-3-9.js @@ -0,0 +1,53 @@ +/// 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: "7.6.1-3-9", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-3-9.js", + + description: "Allow reserved words as property names by index assignment,verified with hasOwnProperty: if, throw, delete", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['if'] = 0; + tokenCodes['throw'] = 1; + tokenCodes['delete'] = 2; + var arr = [ + 'if', + 'throw', + 'delete' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-1.js new file mode 100644 index 0000000000..cde8b8bbba --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-1.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-1", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-1.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: null, true, false", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set null(value) { + test0 = value; + }, + get null() { + return test0; + }, + set true(value) { + test1 = value; + }, + get true() { + return test1; + }, + set false(value) { + test2 = value; + }, + get false(){ + return test2; + } + }; + var arr = [ + 'null', + 'true', + 'false' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-10.js new file mode 100644 index 0000000000..3ec15d9121 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-10.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-10", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-10.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: in, try, class", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set in(value){ + test0 = value; + }, + get in(){ + return test0; + }, + set try(value){ + test1 = value; + }, + get try(){ + return test1 + }, + set class(value){ + test2 = value; + }, + get class(){ + return test2; + } + }; + var arr = [ + 'in', + 'try', + 'class' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-11.js new file mode 100644 index 0000000000..c34e80e4e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-11.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-11", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-11.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: enum, extends, super", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set enum(value){ + test0 = value; + }, + get enum(){ + return test0; + }, + set extends(value){ + test1 = value; + }, + get extends(){ + return test1; + }, + set super(value){ + test2 = value; + }, + get super(){ + return test2; + } + }; + var arr = [ + 'enum', + 'extends', + 'super' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-12.js new file mode 100644 index 0000000000..19b69e4f30 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-12.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-12", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-12.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: const, export, import", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set const(value){ + test0 = value; + }, + get const(){ + return test0; + }, + set export(value){ + test1 = value; + }, + get export(){ + return test1 + }, + set import(value){ + test2 = value; + }, + get import(){ + return test2 + } + }; + var arr = [ + 'const', + 'export', + 'import' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-13.js new file mode 100644 index 0000000000..291eddc29a --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-13.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-13", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-13.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: implements, let, private", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set implements(value){ + test0 = value; + }, + get implements(){ + return test0; + }, + set let(value){ + test1 = value; + }, + get let(){ + return test1 + }, + set private(value){ + test2 = value; + }, + get private(){ + return test2; + } + }; + var arr = [ + 'implements', + 'let', + 'private' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-14.js new file mode 100644 index 0000000000..ae2f96a0ff --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-14.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-14", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-14.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: public, yield, interface", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set public(value){ + test0 = value; + }, + get public(){ + return test0; + }, + set yield(value){ + test1 = value; + }, + get yield(){ + return test1; + }, + set interface(value){ + test2 = value; + }, + get interface(){ + return test2; + } + }; + var arr = [ + 'public', + 'yield', + 'interface' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-15.js new file mode 100644 index 0000000000..7e4c304101 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-15.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-15", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-15.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: package, protected, static", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set package(value){ + test0 = value; + }, + get package(){ + return test0; + }, + set protected(value){ + test1 = value; + }, + get protected(){ + return test1 + }, + set static(value){ + test2 = value; + }, + get static(){ + return test2; + } + }; + var arr = [ + 'package', + 'protected', + 'static' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-16.js new file mode 100644 index 0000000000..9c4a3d0842 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-16.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-16", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-16.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: undefined, NaN, Infinity", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set undefined(value){ + test0 = value; + }, + get undefined(){ + return test0; + }, + set NaN(value){ + test1 = value; + }, + get NaN(){ + return test1; + }, + set Infinity(value){ + test2 = value; + }, + get Infinity(){ + return test2; + } + }; + var arr = [ + 'undefined', + 'NaN', + 'Infinity' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-2.js new file mode 100644 index 0000000000..863b1f0fb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-2.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-2", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-2.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: break, case, do", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set break(value){ + test0 = value; + }, + get break(){ + return test0; + }, + set case(value){ + test1 = value; + }, + get case(){ + return test1; + }, + set do(value){ + test2 = value; + }, + get do(){ + return test2; + } + }; + var arr = [ + 'break', + 'case', + 'do' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-3.js new file mode 100644 index 0000000000..e6fb2455c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-3.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-3", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-3.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: instanceof, typeof, else", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set instanceof(value){ + test0 = value; + }, + get instanceof(){ + return test0; + }, + set typeof(value){ + test1 = value; + }, + get typeof(){ + return test1; + }, + set else(value){ + test2 = value; + }, + get else(){ + return test2; + } + }; + var arr = [ + 'instanceof', + 'typeof', + 'else' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-4.js new file mode 100644 index 0000000000..7925db311e --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-4.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-4", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-4.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: new, var, catch", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set new(value){ + test0 = value; + }, + get new(){ + return test0; + }, + set var(value){ + test1 = value; + }, + get var(){ + return test1; + }, + set catch(value){ + test2 = value; + }, + get catch(){ + return test2; + } + }; + var arr = [ + 'new', + 'var', + 'catch' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-5.js new file mode 100644 index 0000000000..91e220096f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-5.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-5", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-5.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: finally, return, void", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set finally(value){ + test0 = value; + }, + get finally(){ + return test0; + }, + set return(value){ + test1 = value; + }, + get return(){ + return test1; + }, + set void(value){ + test2 = value; + }, + get void(){ + return test2; + } + }; + var arr = [ + 'finally', + 'return', + 'void' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-6.js new file mode 100644 index 0000000000..90a41dd0ef --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-6.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-6", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-6.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: continue, for, switch", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set continue(value){ + test0 = value; + }, + get continue(){ + return test0; + }, + set for(value){ + test1 = value; + }, + get for(){ + return test1; + }, + set switch(value){ + test2 = value; + }, + get switch(){ + return test2; + } + }; + var arr = [ + 'continue', + 'for', + 'switch' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-7.js new file mode 100644 index 0000000000..aca0862de6 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-7.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-7", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-7.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: while, debugger, function", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set while(value){ + test0 = value; + }, + get while(){ + return test0 + }, + set debugger(value){ + test1 = value; + }, + get debugger(){ + return test1; + }, + set function(value){ + test2 = value; + }, + get function(){ + return test2; + } + }; + var arr = [ + 'while' , + 'debugger', + 'function' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-8.js new file mode 100644 index 0000000000..24ca954919 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-8.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-8", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-8.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: this, with, default", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set this(value){ + test0 = value; + }, + get this(){ + return test0; + }, + set with(value){ + test1 = value; + }, + get with(){ + return test1; + }, + set default(value){ + test2 = value; + }, + get default(){ + return test2; + } + }; + var arr = [ + 'this', + 'with', + 'default' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-9.js new file mode 100644 index 0000000000..246380d4ae --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-4-9.js @@ -0,0 +1,70 @@ +/// 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: "7.6.1-4-9", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-4-9.js", + + description: "Allow reserved words as property names by set function within an object, verified with hasOwnProperty: if, throw, delete", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set if(value){ + test0 = value; + }, + get if(){ + return test0; + }, + set throw(value){ + test1 = value; + }, + get throw(){ + return test1 + }, + set delete(value){ + test2 = value; + }, + get delete(){ + return test2; + } + }; + var arr = [ + 'if', + 'throw', + 'delete' + ]; + for(var p in tokenCodes) { + for(var p1 in arr) { + if(arr[p1] === p) { + if(!tokenCodes.hasOwnProperty(arr[p1])) { + return false; + }; + } + } + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-1.js new file mode 100644 index 0000000000..7fcb776701 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-1.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-1", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-1.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: null, true, false", + + test: function testcase() { + var tokenCodes = { + null: 0, + true: 1, + false: 2 + }; + var arr = [ + 'null', + 'true', + 'false' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-10.js new file mode 100644 index 0000000000..152d848387 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-10.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-10", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-10.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: in, try, class", + + test: function testcase() { + var tokenCodes = { + in: 0, + try: 1, + class: 2 + }; + var arr = [ + 'in', + 'try', + 'class' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-11.js new file mode 100644 index 0000000000..ac0773da92 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-11.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-11", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-11.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: enum, extends, super", + + test: function testcase() { + var tokenCodes = { + enum: 0, + extends: 1, + super: 2 + }; + var arr = [ + 'enum', + 'extends', + 'super' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-12.js new file mode 100644 index 0000000000..5f53e3c679 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-12.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-12", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-12.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: const, export, import", + + test: function testcase() { + var tokenCodes = { + const : 0, + export: 1, + import: 2 + }; + var arr = [ + 'const', + 'export', + 'import' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-13.js new file mode 100644 index 0000000000..f57e4e9148 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-13.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-13", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-13.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: implements, let, private", + + test: function testcase() { + var tokenCodes = { + implements: 0, + let: 1, + private: 2 + }; + var arr = [ + 'implements', + 'let', + 'private' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-14.js new file mode 100644 index 0000000000..6d7b0b084f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-14.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-14", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-14.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: public, yield, interface", + + test: function testcase() { + var tokenCodes = { + public: 0, + yield: 1, + interface: 2 + }; + var arr = [ + 'public', + 'yield', + 'interface' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-15.js new file mode 100644 index 0000000000..a9e181d12c --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-15.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-15", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-15.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: package, protected, static", + + test: function testcase() { + var tokenCodes = { + package: 0, + protected: 1, + static: 2 + }; + var arr = [ + 'package', + 'protected', + 'static' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-16.js new file mode 100644 index 0000000000..ccc1dcc3c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-16.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-16", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-16.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: undefined, NaN, Infinity", + + test: function testcase() { + var tokenCodes = { + undefined: 0, + NaN: 1, + Infinity: 2 + }; + var arr = [ + 'undefined', + 'NaN', + 'Infinity' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-2.js new file mode 100644 index 0000000000..939ed9863b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-2.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-2", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-2.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: break, case, do", + + test: function testcase() { + var tokenCodes = { + break: 0, + case: 1, + do: 2 + }; + var arr = [ + 'break', + 'case', + 'do' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-3.js new file mode 100644 index 0000000000..0218298a7b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-3.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-3", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-3.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: instanceof, typeof, else", + + test: function testcase() { + var tokenCodes = { + instanceof: 0, + typeof: 1, + else: 2 + }; + var arr = [ + 'instanceof', + 'typeof', + 'else' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-4.js new file mode 100644 index 0000000000..0817c97362 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-4.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-4", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-4.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: new, var, catch", + + test: function testcase() { + var tokenCodes = { + new: 0, + var: 1, + catch: 2 + }; + var arr = [ + 'new', + 'var', + 'catch' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-5.js new file mode 100644 index 0000000000..0d53e14841 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-5.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-5", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-5.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: finally, return, void", + + test: function testcase() { + var tokenCodes = { + finally: 0, + return: 1, + void: 2 + }; + var arr = [ + 'finally', + 'return', + 'void' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-6.js new file mode 100644 index 0000000000..fdb4592db9 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-6.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-6", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-6.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: continue, for, switch", + + test: function testcase() { + var tokenCodes = { + continue: 0, + for: 1, + switch: 2 + }; + var arr = [ + 'continue', + 'for', + 'switch' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-7.js new file mode 100644 index 0000000000..f0050ff8b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-7.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-7", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-7.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: while, debugger, function", + + test: function testcase() { + var tokenCodes = { + while: 0, + debugger: 1, + function: 2 + }; + var arr = [ + 'while' , + 'debugger', + 'function' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-8.js new file mode 100644 index 0000000000..d45ef99f9d --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-8.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-8", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-8.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: this, with, default", + + test: function testcase() { + var tokenCodes = { + this: 0, + with: 1, + default: 2 + }; + var arr = [ + 'this', + 'with', + 'default' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-9.js new file mode 100644 index 0000000000..431ba2f0d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-5-9.js @@ -0,0 +1,50 @@ +/// 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: "7.6.1-5-9", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-5-9.js", + + description: "Allow reserved words as property names at object initialization, accessed via indexing: if, throw, delete", + + test: function testcase() { + var tokenCodes = { + if: 0, + throw: 1, + delete: 2 + }; + var arr = [ + 'if', + 'throw', + 'delete' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-1.js new file mode 100644 index 0000000000..7ec65613de --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-1.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-1", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-1.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: null, true, false", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.null = 0; + tokenCodes.true = 1; + tokenCodes.false = 2; + var arr = [ + 'null', + 'true', + 'false' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-10.js new file mode 100644 index 0000000000..f0fc5b94fc --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-10.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-10", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-10.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: in, try, class", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.in = 0; + tokenCodes.try = 1; + tokenCodes.class = 2; + var arr = [ + 'in', + 'try', + 'class' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-11.js new file mode 100644 index 0000000000..858bb37da5 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-11.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-11", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-11.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: enum, extends, super", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.enum = 0; + tokenCodes.extends = 1; + tokenCodes.super = 2; + var arr = [ + 'enum', + 'extends', + 'super' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-12.js new file mode 100644 index 0000000000..9420a0c522 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-12.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-12", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-12.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: const, export, import", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.const = 0; + tokenCodes.export = 1; + tokenCodes.import = 2; + var arr = [ + 'const', + 'export', + 'import' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-13.js new file mode 100644 index 0000000000..d6458624d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-13.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-13", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-13.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: implements, let, private", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.implements = 0; + tokenCodes.let = 1; + tokenCodes.private = 2; + var arr = [ + 'implements', + 'let', + 'private' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-14.js new file mode 100644 index 0000000000..e15c39e786 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-14.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-14", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-14.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: public, yield, interface", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.public = 0; + tokenCodes.yield = 1; + tokenCodes.interface = 2; + var arr = [ + 'public', + 'yield', + 'interface' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-15.js new file mode 100644 index 0000000000..4fdd0bb464 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-15.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-15", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-15.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: package, protected, static", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.package = 0; + tokenCodes.protected = 1; + tokenCodes.static = 2; + var arr = [ + 'package', + 'protected', + 'static' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-16.js new file mode 100644 index 0000000000..e8811d110a --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-16.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-16", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-16.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: undefined, NaN, Infinity", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.undefined = 0; + tokenCodes.NaN = 1; + tokenCodes.Infinity = 2; + var arr = [ + 'undefined', + 'NaN', + 'Infinity' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-2.js new file mode 100644 index 0000000000..0b78c62494 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-2.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-2", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-2.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: break, case, do", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.break = 0; + tokenCodes.case = 1; + tokenCodes.do = 2; + var arr = [ + 'break', + 'case', + 'do' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-3.js new file mode 100644 index 0000000000..9f5bc06dec --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-3.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-3", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-3.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: instanceof, typeof, else", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.instanceof = 0; + tokenCodes.typeof = 1; + tokenCodes.else = 2; + var arr = [ + 'instanceof', + 'typeof', + 'else' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-4.js new file mode 100644 index 0000000000..23ca1432a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-4.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-4", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-4.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: new, var, catch", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.new = 0; + tokenCodes.var = 1; + tokenCodes.catch = 2; + var arr = [ + 'new', + 'var', + 'catch' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-5.js new file mode 100644 index 0000000000..19a3457073 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-5.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-5", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-5.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: finally, return, void", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.finally = 0; + tokenCodes.return = 1; + tokenCodes.void = 2; + var arr = [ + 'finally', + 'return', + 'void' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-6.js new file mode 100644 index 0000000000..2ef9edbb9f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-6.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-6", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-6.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: continue, for, switch", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.continue = 0; + tokenCodes.for = 1; + tokenCodes.switch = 2; + var arr = [ + 'continue', + 'for', + 'switch' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-7.js new file mode 100644 index 0000000000..22b6bd54b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-7.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-7", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-7.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: while, debugger, function", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.while = 0; + tokenCodes.debugger = 1; + tokenCodes.function = 2; + var arr = [ + 'while' , + 'debugger', + 'function' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-8.js new file mode 100644 index 0000000000..c1e7541083 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-8.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-8", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-8.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: this, with, default", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.this = 0; + tokenCodes.with = 1; + tokenCodes.default = 2; + var arr = [ + 'this', + 'with', + 'default' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-9.js new file mode 100644 index 0000000000..61b311e0a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-6-9.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-6-9", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-6-9.js", + + description: "Allow reserved words as property names by dot operator assignment, accessed via indexing: if, throw, delete", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes.if = 0; + tokenCodes.throw = 1; + tokenCodes.delete = 2; + var arr = [ + 'if', + 'throw', + 'delete' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-1.js new file mode 100644 index 0000000000..4997fa1a93 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-1.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-1", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-1.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: null, true, false", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['null'] = 0; + tokenCodes['true'] = 1; + tokenCodes['false'] = 2; + var arr = [ + 'null', + 'true', + 'false' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-10.js new file mode 100644 index 0000000000..ac72e3f205 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-10.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-10", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-10.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: in, try, class", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['in'] = 0; + tokenCodes['try'] = 1; + tokenCodes['class'] = 2; + var arr = [ + 'in', + 'try', + 'class' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-11.js new file mode 100644 index 0000000000..7751ae9135 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-11.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-11", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-11.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: enum, extends, super", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['enum'] = 0; + tokenCodes['extends'] = 1; + tokenCodes['super'] = 2; + var arr = [ + 'enum', + 'extends', + 'super' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-12.js new file mode 100644 index 0000000000..6784d64e98 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-12.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-12", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-12.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: const, export, import", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['const'] = 0; + tokenCodes['export'] = 1; + tokenCodes['import'] = 2; + var arr = [ + 'const', + 'export', + 'import' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-13.js new file mode 100644 index 0000000000..7984605a30 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-13.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-13", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-13.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: implements, let, private", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['implements'] = 0; + tokenCodes['let'] = 1; + tokenCodes['private'] = 2; + var arr = [ + 'implements', + 'let', + 'private' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-14.js new file mode 100644 index 0000000000..cca82e5a6c --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-14.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-14", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-14.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: public, yield, interface", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['public'] = 0; + tokenCodes['yield'] = 1; + tokenCodes['interface'] = 2; + var arr = [ + 'public', + 'yield', + 'interface' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-15.js new file mode 100644 index 0000000000..3cacf8c48f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-15.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-15", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-15.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: package, protected, static", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['package'] = 0; + tokenCodes['protected'] = 1; + tokenCodes['static'] = 2; + var arr = [ + 'package', + 'protected', + 'static' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-16.js new file mode 100644 index 0000000000..7e6b1b6e92 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-16.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-16", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-16.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: undefined, NaN, Infinity", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['undefined'] = 0; + tokenCodes['NaN'] = 1; + tokenCodes['Infinity'] = 2; + var arr = [ + 'undefined', + 'NaN', + 'Infinity' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-2.js new file mode 100644 index 0000000000..f3e34e4eec --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-2.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-2", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-2.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: break, case, do", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['break'] = 0; + tokenCodes['case'] = 1; + tokenCodes['do'] = 2; + var arr = [ + 'break', + 'case', + 'do' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-3.js new file mode 100644 index 0000000000..b034e2068c --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-3.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-3", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-3.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: instanceof, typeof, else", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['instanceof'] = 0; + tokenCodes['typeof'] = 1; + tokenCodes['else'] = 2; + var arr = [ + 'instanceof', + 'typeof', + 'else' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-4.js new file mode 100644 index 0000000000..43e022a0bc --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-4.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-4", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-4.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: new, var, catch", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['new'] = 0; + tokenCodes['var'] = 1; + tokenCodes['catch'] = 2; + var arr = [ + 'new', + 'var', + 'catch' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-5.js new file mode 100644 index 0000000000..dfe7effd7a --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-5.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-5", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-5.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: finally, return, void", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['finally'] = 0; + tokenCodes['return'] = 1; + tokenCodes['void'] = 2; + var arr = [ + 'finally', + 'return', + 'void' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-6.js new file mode 100644 index 0000000000..5882d7160a --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-6.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-6", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-6.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: continue, for, switch", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['continue'] = 0; + tokenCodes['for'] = 1; + tokenCodes['switch'] = 2; + var arr = [ + 'continue', + 'for', + 'switch' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-7.js new file mode 100644 index 0000000000..c769122c3b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-7.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-7", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-7.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: while, debugger, function", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['while'] = 0; + tokenCodes['debugger'] = 1; + tokenCodes['function'] = 2; + var arr = [ + 'while', + 'debugger', + 'function' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-8.js new file mode 100644 index 0000000000..28fe9459a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-8.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-8", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-8.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: this, with, default", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['this'] = 0; + tokenCodes['with'] = 1; + tokenCodes['default'] = 2; + var arr = [ + 'this', + 'with', + 'default' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-9.js new file mode 100644 index 0000000000..db1be90ce6 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-7-9.js @@ -0,0 +1,49 @@ +/// 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: "7.6.1-7-9", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-7-9.js", + + description: "Allow reserved words as property names by index assignment, accessed via indexing: if, throw, delete", + + test: function testcase() { + var tokenCodes = {}; + tokenCodes['if'] = 0; + tokenCodes['throw'] = 1; + tokenCodes['delete'] = 2; + var arr = [ + 'if', + 'throw', + 'delete' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-1.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-1.js new file mode 100644 index 0000000000..3465638804 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-1.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-1", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-1.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: null, true, false", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set null(value) { + test0 = value; + }, + get null() { + return test0; + }, + set true(value) { + test1 = value; + }, + get true() { + return test1; + }, + set false(value) { + test2 = value; + }, + get false(){ + return test2; + } + }; + var arr = [ + 'null', + 'true', + 'false' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-10.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-10.js new file mode 100644 index 0000000000..e75d5a5cfa --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-10.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-10", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-10.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: in, try, class", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set in(value){ + test0 = value; + }, + get in(){ + return test0; + }, + set try(value){ + test1 = value; + }, + get try(){ + return test1 + }, + set class(value){ + test2 = value; + }, + get class(){ + return test2; + } + }; + var arr = [ + 'in', + 'try', + 'class' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-11.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-11.js new file mode 100644 index 0000000000..0db87fb13b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-11.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-11", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-11.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: enum, extends, super", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set enum(value){ + test0 = value; + }, + get enum(){ + return test0; + }, + set extends(value){ + test1 = value; + }, + get extends(){ + return test1; + }, + set super(value){ + test2 = value; + }, + get super(){ + return test2; + } + }; + var arr = [ + 'enum', + 'extends', + 'super' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-12.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-12.js new file mode 100644 index 0000000000..2d00975d61 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-12.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-12", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-12.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: const, export, import", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set const(value){ + test0 = value; + }, + get const(){ + return test0; + }, + set export(value){ + test1 = value; + }, + get export(){ + return test1 + }, + set import(value){ + test2 = value; + }, + get import(){ + return test2 + } + }; + var arr = [ + 'const', + 'export', + 'import' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-13.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-13.js new file mode 100644 index 0000000000..5ec0797e40 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-13.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-13", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-13.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: implements, let, private", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set implements(value){ + test0 = value; + }, + get implements(){ + return test0; + }, + set let(value){ + test1 = value; + }, + get let(){ + return test1 + }, + set private(value){ + test2 = value; + }, + get private(){ + return test2; + } + }; + var arr = [ + 'implements', + 'let', + 'private' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-14.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-14.js new file mode 100644 index 0000000000..43e9461ba8 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-14.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-14", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-14.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: public, yield, interface", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set public(value){ + test0 = value; + }, + get public(){ + return test0; + }, + set yield(value){ + test1 = value; + }, + get yield(){ + return test1; + }, + set interface(value){ + test2 = value; + }, + get interface(){ + return test2; + } + }; + var arr = [ + 'public', + 'yield', + 'interface' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-15.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-15.js new file mode 100644 index 0000000000..9f319950ab --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-15.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-15", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-15.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: package, protected, static", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set package(value){ + test0 = value; + }, + get package(){ + return test0; + }, + set protected(value){ + test1 = value; + }, + get protected(){ + return test1 + }, + set static(value){ + test2 = value; + }, + get static(){ + return test2; + } + }; + var arr = [ + 'package', + 'protected', + 'static' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-16.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-16.js new file mode 100644 index 0000000000..0a071cd05e --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-16.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-16", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-16.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: undefined, NaN, Infinity", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set undefined(value){ + test0 = value; + }, + get undefined(){ + return test0; + }, + set NaN(value){ + test1 = value; + }, + get NaN(){ + return test1; + }, + set Infinity(value){ + test2 = value; + }, + get Infinity(){ + return test2; + } + }; + var arr = [ + 'undefined', + 'NaN', + 'Infinity' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-2.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-2.js new file mode 100644 index 0000000000..c55b60eaea --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-2.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-2", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-2.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: break, case, do", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set break(value){ + test0 = value; + }, + get break(){ + return test0; + }, + set case(value){ + test1 = value; + }, + get case(){ + return test1; + }, + set do(value){ + test2 = value; + }, + get do(){ + return test2; + } + }; + var arr = [ + 'break', + 'case', + 'do' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-3.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-3.js new file mode 100644 index 0000000000..4a768e8f38 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-3.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-3", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-3.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: instanceof, typeof, else", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set instanceof(value){ + test0 = value; + }, + get instanceof(){ + return test0; + }, + set typeof(value){ + test1 = value; + }, + get typeof(){ + return test1; + }, + set else(value){ + test2 = value; + }, + get else(){ + return test2; + } + }; + var arr = [ + 'instanceof', + 'typeof', + 'else' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-4.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-4.js new file mode 100644 index 0000000000..dd555bd287 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-4.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-4", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-4.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: new, var, catch", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set new(value){ + test0 = value; + }, + get new(){ + return test0; + }, + set var(value){ + test1 = value; + }, + get var(){ + return test1; + }, + set catch(value){ + test2 = value; + }, + get catch(){ + return test2; + } + }; + var arr = [ + 'new', + 'var', + 'catch' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-5.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-5.js new file mode 100644 index 0000000000..5e60419487 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-5.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-5", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-5.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: finally, return, void", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set finally(value){ + test0 = value; + }, + get finally(){ + return test0; + }, + set return(value){ + test1 = value; + }, + get return(){ + return test1; + }, + set void(value){ + test2 = value; + }, + get void(){ + return test2; + } + }; + var arr = [ + 'finally', + 'return', + 'void' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-6.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-6.js new file mode 100644 index 0000000000..634b64923d --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-6.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-6", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-6.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: continue, for, switch", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set continue(value){ + test0 = value; + }, + get continue(){ + return test0; + }, + set for(value){ + test1 = value; + }, + get for(){ + return test1; + }, + set switch(value){ + test2 = value; + }, + get switch(){ + return test2; + } + }; + var arr = [ + 'continue', + 'for', + 'switch' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-7.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-7.js new file mode 100644 index 0000000000..08f703048d --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-7.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-7", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-7.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: while, debugger, function", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set while(value){ + test0 = value; + }, + get while(){ + return test0 + }, + set debugger(value){ + test1 = value; + }, + get debugger(){ + return test1; + }, + set function(value){ + test2 = value; + }, + get function(){ + return test2; + } + }; + var arr = [ + 'while' , + 'debugger', + 'function' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-8.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-8.js new file mode 100644 index 0000000000..08090bafe0 --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-8.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-8", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-8.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: this, with, default", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set this(value){ + test0 = value; + }, + get this(){ + return test0; + }, + set with(value){ + test1 = value; + }, + get with(){ + return test1; + }, + set default(value){ + test2 = value; + }, + get default(){ + return test2; + } + }; + var arr = [ + 'this', + 'with', + 'default' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-9.js b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-9.js new file mode 100644 index 0000000000..9094c2166b --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.6/7.6.1/7.6.1-8-9.js @@ -0,0 +1,66 @@ +/// 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: "7.6.1-8-9", + + path: "TestCases/chapter07/7.6/7.6.1/7.6.1-8-9.js", + + description: "Allow reserved words as property names by set function within an object, accessed via indexing: if, throw, delete", + + test: function testcase() { + var test0 = 0, test1 = 1, test2 = 2; + var tokenCodes = { + set if(value){ + test0 = value; + }, + get if(){ + return test0; + }, + set throw(value){ + test1 = value; + }, + get throw(){ + return test1 + }, + set delete(value){ + test2 = value; + }, + get delete(){ + return test2; + } + }; + var arr = [ + 'if', + 'throw', + 'delete' + ]; + for (var i = 0; i < arr.length; i++) { + if (tokenCodes[arr[i]] !== i) { + return false; + }; + } + return true; + }, + + precondition: function prereq() { return true; + } +}); diff --git a/test/suite/ietestcenter/chapter07/7.8/7.8.5/7.8.5-1.js b/test/suite/ietestcenter/chapter07/7.8/7.8.5/7.8.5-1.js new file mode 100644 index 0000000000..2750af3c9f --- /dev/null +++ b/test/suite/ietestcenter/chapter07/7.8/7.8.5/7.8.5-1.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: "7.8.5-1", + + path: "TestCases/chapter7/7.8.5/7.8.5-1.js", + + description: "Literal RegExp Objects - SyntaxError exception is thrown if the RegularExpressionNonTerminator position of a RegularExpressionBackslashSequence is a LineTerminator.", + + test: function testcase() { + try { + eval("var regExp = /\\\rn/;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-1.js b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-1.js new file mode 100644 index 0000000000..24df111950 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-1.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. + +var __10_4_2_1_1_1 = "str"; +ES5Harness.registerTest( { +id: "10.4.2-1-1", + +path: "TestCases/chapter10/10.4/10.4.2/10.4.2-1-1.js", + +description: "Indirect call to eval has context set to global context", + +test: function testcase() { + try { + + var _eval = eval; + var __10_4_2_1_1_1 = "str1"; + if(_eval("\'str\' === __10_4_2_1_1_1") === true && // indirect eval + eval("\'str1\' === __10_4_2_1_1_1") === true) { // direct eval + return true; + } + return false; + } finally { + delete this.__10_4_2_1_1_1; + } +} +}); diff --git a/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-2.js b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-2.js new file mode 100644 index 0000000000..48734a5bb7 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-2.js @@ -0,0 +1,48 @@ +/// 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. + +var __10_4_2_1_2 = "str"; +ES5Harness.registerTest( { +id: "10.4.2-1-2", + +path: "TestCases/chapter10/10.4/10.4.2/10.4.2-1-2.js", + +description: "Indirect call to eval has context set to global context (nested function)", + +test: function testcase() { + try { + + var _eval = eval; + var __10_4_2_1_2 = "str1"; + function foo() { + var __10_4_2_1_2 = "str2"; + if(_eval("\'str\' === __10_4_2_1_2") === true && // indirect eval + eval("\'str2\' === __10_4_2_1_2") === true) { // direct eval + return true; + } else { + return false; + } + } + return foo(); + } finally { + delete this.__10_4_2_1_1_2; + } + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-3.js b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-3.js new file mode 100644 index 0000000000..47320b7820 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-3.js @@ -0,0 +1,51 @@ +/// 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. + +var __10_4_2_1_3 = "str"; +ES5Harness.registerTest( { +id: "10.4.2-1-3", + +path: "TestCases/chapter10/10.4/10.4.2/10.4.2-1-3.js", + +description: "Indirect call to eval has context set to global context (catch block)", + +test: function testcase() { + + try { + + var _eval = eval; + var __10_4_2_1_3 = "str1"; + try { + throw "error"; + } + catch (e) { + var __10_4_2_1_3 = "str2"; + if (_eval("\'str\' === __10_4_2_1_3") === true && // indirect eval + eval("\'str2\' === __10_4_2_1_3") === true) { // direct eval + return true; + } else { + return false; + } + } + } finally { + delete this.__10_4_2_1_3; + } + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-4.js b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-4.js new file mode 100644 index 0000000000..938fd581bf --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-4.js @@ -0,0 +1,47 @@ +/// 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. + + +var __10_4_2_1_4 = "str"; +ES5Harness.registerTest( { +id: "10.4.2-1-4", + +path: "TestCases/chapter10/10.4/10.4.2/10.4.2-1-4.js", + +description: "Indirect call to eval has context set to global context (with block)", + +test: function testcase() { + try { + var o = new Object(); + o.__10_4_2_1_4 = "str2"; + var _eval = eval; + var __10_4_2_1_4 = "str1"; + with (o) { + if (_eval("\'str\' === __10_4_2_1_4") === true && // indirect eval + eval("\'str2\' === __10_4_2_1_4") === true) { // direct eval + return true; + } + } + return false; + } finally { + delete this.__10_4_2_1_4; + } + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-5.js b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-5.js new file mode 100644 index 0000000000..196721de9c --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-1-5.js @@ -0,0 +1,45 @@ +/// 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. + + +var __10_4_2_1_5 = "str"; +ES5Harness.registerTest( { +id: "10.4.2-1-5", + +path: "TestCases/chapter10/10.4/10.4.2/10.4.2-1-5.js", + +description: "Indirect call to eval has context set to global context (inside another eval)", + +test: function testcase() { + try { + + var __10_4_2_1_5 = "str1"; + var r = eval("\ + var _eval = eval; \ + var __10_4_2_1_5 = \'str2\'; \ + _eval(\"\'str\' === __10_4_2_1_5 \") && \ + eval(\"\'str2\' === __10_4_2_1_5\")\ + "); + return r; + } finally { + delete this.__10_4_2_1_5; + } + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-2-c-1.js b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-2-c-1.js new file mode 100644 index 0000000000..e3821df739 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.4/10.4.2/10.4.2-2-c-1.js @@ -0,0 +1,39 @@ +/// 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: "10.4.2-2-c-1", + +path: "TestCases/chapter10/10.4/10.4.2/10.4.2-2-c-1.js", + +description: "Direct val code in non-strict mode - can instantiate variable in calling context", + +test: function testcase() { +  var x = 0; +  return function inner() { + eval("var x = 1"); + if (x === 1) + return true; + } (); + } + +}); + diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-10-c-ii-1.js b/test/suite/ietestcenter/chapter10/10.6/10.6-10-c-ii-1.js new file mode 100644 index 0000000000..7fc8f62cc0 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-10-c-ii-1.js @@ -0,0 +1,38 @@ +/// 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: "10.6-10-c-ii-1", + +path: "TestCases/chapter10/10.6/10.6-10-c-ii-1.js", + +description: "arguments[i] change with actual parameters", + +test: function testcase() { + function foo(a,b,c) + { + a = 1; b = 'str'; c = 2.1; + if(arguments[0] === 1 && arguments[1] === 'str' && arguments[2] === 2.1) + return true; + } + return foo(10,'sss',1); + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-10-c-ii-2.js b/test/suite/ietestcenter/chapter10/10.6/10.6-10-c-ii-2.js new file mode 100644 index 0000000000..5de79ca09e --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-10-c-ii-2.js @@ -0,0 +1,39 @@ +/// 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: "10.6-10-c-ii-2", + +path: "TestCases/chapter10/10.6/10.6-10-c-ii-2.js", + +description: "arguments[i] map to actual parameter", + +test: function testcase() { + + function foo(a,b,c) + { + arguments[0] = 1; arguments[1] = 'str'; arguments[2] = 2.1; + if(1 === a && 'str' === b && 2.1 === c) + return true; + } + return foo(10,'sss',1); + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-11-b-1.js b/test/suite/ietestcenter/chapter10/10.6/10.6-11-b-1.js new file mode 100644 index 0000000000..122691dcbb --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-11-b-1.js @@ -0,0 +1,74 @@ +/// 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: "10.6-11-b-1", + + path: "TestCases/chapter10/10.6/10.6-11-b-1.js", + + description: "Arguments Object has index property '0' as its own property, it shoulde be writable, enumerable, configurable and does not invoke the setter defined on Object.prototype[0] (Step 11.b)", + + test: function testcase() { + try { + var data = "data"; + var getFunc = function () { + return data; + }; + + var setFunc = function (value) { + data = value; + }; + + Object.defineProperty(Object.prototype, "0", { + get: getFunc, + set: setFunc, + configurable: true + }); + + var argObj = (function () { return arguments })(1); + + var verifyValue = false; + verifyValue = (argObj[0] === 1); + + var verifyEnumerable = false; + for (var p in argObj) { + if (p === "0" && argObj.hasOwnProperty("0")) { + verifyEnumerable = true; + } + } + + var verifyWritable = false; + argObj[0] = 1001; + verifyWritable = (argObj[0] === 1001); + + var verifyConfigurable = false; + delete argObj[0]; + verifyConfigurable = argObj.hasOwnProperty("0"); + + return verifyValue && verifyWritable && verifyEnumerable && !verifyConfigurable && data === "data"; + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-12-1.js b/test/suite/ietestcenter/chapter10/10.6/10.6-12-1.js new file mode 100644 index 0000000000..eba3e5952a --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-12-1.js @@ -0,0 +1,38 @@ +/// 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: "10.6-12-1", + +path: "TestCases/chapter10/10.6/10.6-12-1.js", + +description: "Accessing callee property of Arguments object is allowed", + +test: function testcase() { + try + { + arguments.callee; + return true; + } + catch (e) { + } + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-12-2.js b/test/suite/ietestcenter/chapter10/10.6/10.6-12-2.js new file mode 100644 index 0000000000..e41aa06f6a --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-12-2.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: "10.6-12-2", + +path: "TestCases/chapter10/10.6/10.6-12-2.js", + +description: "arguments.callee has correct attributes", + +test: function testcase() { + + var desc = Object.getOwnPropertyDescriptor(arguments,"callee"); + if(desc.configurable === true && + desc.enumerable === false && + desc.writable === true && + desc.hasOwnProperty('get') == false && + desc.hasOwnProperty('put') == false) + return true; + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-13-1.js b/test/suite/ietestcenter/chapter10/10.6/10.6-13-1.js new file mode 100644 index 0000000000..487ca461a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-13-1.js @@ -0,0 +1,38 @@ +/// 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: "10.6-13-1", + +path: "TestCases/chapter10/10.6/10.6-13-1.js", + +description: "Accessing caller property of Arguments object is allowed", + +test: function testcase() { + try + { + arguments.caller; + return true; + } + catch (e) { + } + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-13-a-1.js b/test/suite/ietestcenter/chapter10/10.6/10.6-13-a-1.js new file mode 100644 index 0000000000..d158e98fe5 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-13-a-1.js @@ -0,0 +1,66 @@ +/// 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: "10.6-13-a-1", + + path: "TestCases/chapter10/10.6/10.6-13-a-1.js", + + description: "In non-strict mode, arguments object should have its own 'callee' property defined (Step 13.a)", + + test: function testcase() { + try { + Object.defineProperty(Object.prototype, "callee", { + value: 1, + writable: false, + configurable: true + }); + + var argObj = (function () { return arguments })(); + + var verifyValue = false; + var expectedValue = "function () { return arguments }"; + verifyValue = argObj.callee.toString() === expectedValue && typeof argObj.callee === "function"; + + var verifyWritable = false; + argObj.callee = 1001; + verifyWritable = (argObj.callee === 1001); + + var verifyEnumerable = false; + for (var p in argObj) { + if (p === "callee" && argObj.hasOwnProperty("callee")) { + verifyEnumerable = true; + } + } + + var verifyConfigurable = false; + delete argObj.callee; + verifyConfigurable = argObj.hasOwnProperty("callee"); + + return verifyValue && verifyWritable && !verifyEnumerable && !verifyConfigurable; + } finally { + delete Object.prototype.callee; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-5-1.js b/test/suite/ietestcenter/chapter10/10.6/10.6-5-1.js new file mode 100644 index 0000000000..623cb305d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-5-1.js @@ -0,0 +1,36 @@ +/// 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: "10.6-5-1", + +path: "TestCases/chapter10/10.6/10.6-5-1.js", + +description: "[[Prototype]] property of Arguments is set to Object prototype object", + +test: function testcase() { + if(Object.getPrototypeOf(arguments) === Object.getPrototypeOf({})) + return true; + }, +precondition: function () { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-6-1.js b/test/suite/ietestcenter/chapter10/10.6/10.6-6-1.js new file mode 100644 index 0000000000..82116c30a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-6-1.js @@ -0,0 +1,39 @@ +/// 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: "10.6-6-1", + +path: "TestCases/chapter10/10.6/10.6-6-1.js", + +description: "'length property of arguments object exists", + +test: function testcase() { + + var desc = Object.getOwnPropertyDescriptor(arguments,"length"); + return desc !== undefined + }, + +precondition: function () { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-6-2.js b/test/suite/ietestcenter/chapter10/10.6/10.6-6-2.js new file mode 100644 index 0000000000..74314af5b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-6-2.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: "10.6-6-2", + +path: "TestCases/chapter10/10.6/10.6-6-2.js", + +description: "'length' property of arguments object has correct attributes", + +test: function testcase() { + + var desc = Object.getOwnPropertyDescriptor(arguments,"length"); + if(desc.configurable === true && + desc.enumerable === false && + desc.writable === true ) + return true; + }, + +precondition: function () { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-6-3.js b/test/suite/ietestcenter/chapter10/10.6/10.6-6-3.js new file mode 100644 index 0000000000..1ee1b37092 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-6-3.js @@ -0,0 +1,34 @@ +/// 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: "10.6-6-3", + +path: "TestCases/chapter10/10.6/10.6-6-3.js", + +description: "'length' property of arguments object for 0 argument function exists", + +test: function testcase() { + var arguments= undefined; + return (function () {return arguments.length !== undefined})(); + } + +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-6-4.js b/test/suite/ietestcenter/chapter10/10.6/10.6-6-4.js new file mode 100644 index 0000000000..2e0f81e796 --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-6-4.js @@ -0,0 +1,34 @@ +/// 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: "10.6-6-4", + +path: "TestCases/chapter10/10.6/10.6-6-4.js", + +description: "'length' property of arguments object for 0 argument function call is 0 even with formal parameters", + +test: function testcase() { + var arguments= undefined; + return (function (a,b,c) {return arguments.length === 0})(); + } + +}); diff --git a/test/suite/ietestcenter/chapter10/10.6/10.6-7-1.js b/test/suite/ietestcenter/chapter10/10.6/10.6-7-1.js new file mode 100644 index 0000000000..7b3db194db --- /dev/null +++ b/test/suite/ietestcenter/chapter10/10.6/10.6-7-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: "10.6-7-1", + + path: "TestCases/chapter10/10.6/10.6-7-1.js", + + description: "Arguments Object has length as its own property and does not invoke the setter defined on Object.prototype.length (Step 7)", + + test: function testcase() { + try { + var data = "data"; + var getFunc = function () { + return 12; + }; + + var setFunc = function (value) { + data = value; + }; + + Object.defineProperty(Object.prototype, "length", { + get: getFunc, + set: setFunc, + configurable: true + }); + + var verifyValue = false; + var argObj = (function () { return arguments })(); + verifyValue = (argObj.length === 0); + + var verifyWritable = false; + argObj.length = 1001; + verifyWritable = (argObj.length === 1001); + + var verifyEnumerable = false; + for (var p in argObj) { + if (p === "length") { + verifyEnumerable = true; + } + } + + var verifyConfigurable = false; + delete argObj.length; + verifyConfigurable = argObj.hasOwnProperty("length"); + + return verifyValue && verifyWritable && !verifyEnumerable && !verifyConfigurable && data === "data"; + } finally { + delete Object.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4-0.js b/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4-0.js new file mode 100644 index 0000000000..2c4262b776 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4-0.js @@ -0,0 +1,35 @@ +/// 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: "11.1.4-0", + +path: "TestCases/chapter11/11.1/11.1.4/11.1.4-0.js", + +description: "elements elided at the end of an array do not contribute to its length", + +test: function testcase() { + var a = [,]; + if (a.length === 1) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4_4-5-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4_4-5-1.js new file mode 100644 index 0000000000..91b1a9746c --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4_4-5-1.js @@ -0,0 +1,54 @@ +/// 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. + +/* +Refer 11.1.4; +The production +ElementList : Elisionopt AssignmentExpression +5.Call the [[DefineOwnProperty]] internal method of array with arguments ToString(firstIndex), the Property Descriptor { [[Value]]: initValue, [[Writable]]: true + , [[Enumerable]]: true, [[Configurable]]: true}, and false. +*/ + +ES5Harness.registerTest({ + id: "11.1.4_4-5-1", + + path: "TestCases/chapter11/11.1/11.1.4/11.1.4_4-5-1.js", + + description: "Initialize array using ElementList (Elisionopt AssignmentExpression) when index property (read-only) exists in Array.prototype (step 5)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 100, + writable: false, + configurable: true + }); + var arr = [101]; + + return arr.hasOwnProperty("0") && arr[0] === 101; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4_5-6-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4_5-6-1.js new file mode 100644 index 0000000000..cd06e0dc3e --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.4/11.1.4_5-6-1.js @@ -0,0 +1,54 @@ +/// 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. + +/* +Refer 11.1.4; +The production +ElementList : ElementList , Elisionopt AssignmentExpression +6.Call the [[DefineOwnProperty]] internal method of array with arguments ToString(ToUint32((pad+len)) and the Property Descriptor { [[Value]]: initValue + , [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false. +*/ + +ES5Harness.registerTest({ + id: "11.1.4_5-6-1", + + path: "TestCases/chapter11/11.1/11.1.4/11.1.4_5-6-1.js", + + description: "Initialize array using ElementList (ElementList , Elisionopt AssignmentExpression) when index property (read-only) exists in Array.prototype (step 6)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "1", { + value: 100, + writable: false, + configurable: true + }); + var arr = [101, 12]; + + return arr.hasOwnProperty("1") && arr[1] === 12; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5-0-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5-0-1.js new file mode 100644 index 0000000000..a767c26556 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5-0-1.js @@ -0,0 +1,44 @@ +/// 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. + + +/* it isn't clear what specific requirements of the specificaiton are being tested here. This test should +probably be replaced by some more targeted tests. AllenWB */ + +ES5Harness.registerTest( { +id: "11.1.5-0-1", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5-0-1.js", + +description: "Object literal - get set property", + +test: function testcase() { + var s1 = "In getter"; + var s2 = "In setter"; + var s3 = "Modified by setter"; + eval("var o = {get foo(){ return s1;},set foo(arg){return s2 = s3}};"); + if(o.foo !== s1) + return false; + o.foo=10; + if(s2 !== s3) + return false; + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5-0-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5-0-2.js new file mode 100644 index 0000000000..3cf7418be8 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5-0-2.js @@ -0,0 +1,49 @@ +/// 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. + +/* it isn't clear what specific requirements of the specificaiton are being tested here. This test should +probably be replaced by some more targeted tests. AllenWB */ + + +ES5Harness.registerTest( { +id: "11.1.5-0-2", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5-0-2.js", + +description: "Object literal - multiple get set properties", + +test: function testcase() { + var s1 = "First getter"; + var s2 = "First setter"; + var s3 = "Second getter"; + eval("var o = {get foo(){ return s1;},set foo(arg){return s2 = s3}, get bar(){ return s3}, set bar(arg){ s3 = arg;}};"); + if(o.foo !== s1) + return false; + o.foo = 10; + if(s2 !== s3) + return false; + if(o.bar !== s3) + return false; + o.bar = "Second setter"; + if(o.bar !== "Second setter") + return false; + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_3-3-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_3-3-1.js new file mode 100644 index 0000000000..3063341c36 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_3-3-1.js @@ -0,0 +1,53 @@ +/// 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. + +/* +Refer 11.1.5; +The production +PropertyNameAndValueList : PropertyAssignment +3.Call the [[DefineOwnProperty]] internal method of obj with arguments propId.name, propId.descriptor, and false. +*/ + +ES5Harness.registerTest({ + id: "11.1.5_3-3-1", + + path: "TestCases/chapter11/11.1/11.1.5/11.1.5_3-3-1.js", + + description: "Object initialization using PropertyNameAndValueList (PropertyAssignment) when property (read-only) exists in Object.prototype (step 3)", + + test: function testcase() { + try { + Object.defineProperty(Object.prototype, "prop", { + value: 100, + writable: false, + configurable: true + }); + var obj = { prop: 12 }; + + return obj.hasOwnProperty("prop") && obj.prop === 12; + } finally { + delete Object.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-a-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-a-2.js new file mode 100644 index 0000000000..5ab4140825 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-a-2.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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + a. This production is contained in strict code and IsDataDescriptor(previous) is true and IsDataDescriptor(propId.descriptor) is true +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-a-2", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-a-2.js", + +description: "Object literal - Duplicate data property name allowed if not in strict mode", + +test: function testcase() { + + eval("({foo:0,foo:1});"); + return true; + } + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-a-3.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-a-3.js new file mode 100644 index 0000000000..5c3fcf6f78 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-a-3.js @@ -0,0 +1,44 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + a. This production is contained in strict code and IsDataDescriptor(previous) is true and IsDataDescriptor(propId.descriptor) is true +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-a-3", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-a-3.js", + +description: "Object literal - Duplicate data property name allowed gets last defined value", + +test: function testcase() { + + var o = eval("({foo:0,foo:1});"); + return o.foo===1; + } + + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-1.js new file mode 100644 index 0000000000..4b338d2357 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + b.IsDataDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true. +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-b-1", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-b-1.js", + +description: "Object literal - SyntaxError if a data property definition is followed by get accessor definition with the same name", + +test: function testcase() { + try + { + eval("({foo : 1, get foo(){}});"); + return false; + } + catch(e) + { + return e instanceof SyntaxError; + } + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return true; +} +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-2.js new file mode 100644 index 0000000000..fb4795d344 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-2.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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + b.IsDataDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true. +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-b-2", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-b-2.js", + +description: "Object literal - SyntaxError if a data property definition is followed by set accessor definition with the same name", + +test: function testcase() { + try + { + eval("({foo : 1, set foo(x){}});"); + return false; + } + catch(e) + { + return e instanceof SyntaxError; + } + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return true; +} +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-1.js new file mode 100644 index 0000000000..cee036998f --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-1.js @@ -0,0 +1,56 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + c.IsAccessorDescriptor(previous) is true and IsDataDescriptor(propId.descriptor) is true. +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-c-1", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-c-1.js", + +description: "Object literal - SyntaxError if a get accessor property definition is followed by a data property definition with the same name", + +test: function testcase() { + try + { + eval("({get foo(){}, foo : 1});"); + return false; + } + catch(e) + { + return e instanceof SyntaxError; + } + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return true; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-2.js new file mode 100644 index 0000000000..120bffa65c --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-2.js @@ -0,0 +1,56 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + c.IsAccessorDescriptor(previous) is true and IsDataDescriptor(propId.descriptor) is true. +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-c-2", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-c-2.js", + +description: "Object literal - SyntaxError if a set accessor property definition is followed by a data property definition with the same name", + +test: function testcase() { + try + { + eval("({set foo(x){}, foo : 1});"); + return false; + } + catch(e) + { + return e instanceof SyntaxError; + } + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false}; + return true; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-1.js new file mode 100644 index 0000000000..585d48d9ab --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + d. IsAccessorDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true and either both previous and propId.descriptor have [[Get]] fields or both previous and propId.descriptor have [[Set]] fields +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-d-1", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-d-1.js", + +description: "Object literal - SyntaxError for duplicate property name (get,get)", + +test: function testcase() { + try + { + eval("({get foo(){}, get foo(){}});"); + return false; + } + catch(e) + { + return e instanceof SyntaxError; + } + }, +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return true; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-2.js new file mode 100644 index 0000000000..dcb591c2d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-2.js @@ -0,0 +1,56 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + d. IsAccessorDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true and either both previous and propId.descriptor have [[Get]] fields or both previous and propId.descriptor have [[Set]] fields +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-d-2", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-d-2.js", + +description: "Object literal - SyntaxError for duplicate property name (set,set)", + +test: function testcase() { + try + { + eval("({set foo(arg){}, set foo(arg1){}});"); + return false; + } + catch(e) + { + return e instanceof SyntaxError; + } + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return true; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-3.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-3.js new file mode 100644 index 0000000000..f02221c965 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-3.js @@ -0,0 +1,56 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + d. IsAccessorDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true and either both previous and propId.descriptor have [[Get]] fields or both previous and propId.descriptor have [[Set]] fields +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-d-3", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-d-3.js", + +description: "Object literal - SyntaxError for duplicate property name (get,set,get)", + +test: function testcase() { + try + { + eval("({get foo(){}, set foo(arg){}, get foo(){}});"); + return false; + } + catch(e) + { + return e instanceof SyntaxError; + } + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return true; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-4.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-4.js new file mode 100644 index 0000000000..2ff3c7e10b --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-4.js @@ -0,0 +1,56 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment + 4. If previous is not undefined then throw a SyntaxError exception if any of the following conditions are true + d. IsAccessorDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true and either both previous and propId.descriptor have [[Get]] fields or both previous and propId.descriptor have [[Set]] fields +*/ + +ES5Harness.registerTest( { +id: "11.1.5_4-4-d-4", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-4-d-4.js", + +description: "Object literal - SyntaxError for duplicate property name (set,get,set)", + +test: function testcase() { + try + { + eval("({set foo(arg){}, get foo(){}, set foo(arg1){}});"); + return false; + } + catch(e) + { + return e instanceof SyntaxError; + } + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return true; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-5-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-5-1.js new file mode 100644 index 0000000000..0dfe5d655c --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-5-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. + + +/* +Refer 11.1.5; +The production +PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment +5.Call the [[DefineOwnProperty]] internal method of obj with arguments propId.name, propId.descriptor, and false. +*/ + +ES5Harness.registerTest({ + id: "11.1.5_4-5-1", + + path: "TestCases/chapter11/11.1/11.1.5/11.1.5_4-5-1.js", + + description: "Object initialization using PropertyNameAndValueList (PropertyNameAndValueList , PropertyAssignment) when property (read-only) exists in Object.prototype (Step 5)", + + test: function testcase() { + try { + Object.defineProperty(Object.prototype, "prop2", { + value: 100, + writable: false, + configurable: true + }); + + var obj = { prop1: 101, prop2: 12 }; + + return obj.hasOwnProperty("prop2"); + } finally { + delete Object.prototype.prop2; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_5-4-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_5-4-1.js new file mode 100644 index 0000000000..57671b89e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_5-4-1.js @@ -0,0 +1,51 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyAssignment : PropertyName : AssignmentExpression + 4.Let desc be the Property Descriptor{[[Value]]: propValue, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true} +*/ + +ES5Harness.registerTest( { +id: "11.1.5_5-4-1", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_5-4-1.js", + +description: "Object literal - property descriptor for assignment expression", + +test: function testcase() { + + var o = {foo : 1}; + var desc = Object.getOwnPropertyDescriptor(o,"foo"); + if(desc.value === 1 && + desc.writable === true && + desc.enumerable === true && + desc.configurable === true) + return true; + }, + +precondition: function () { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_6-3-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_6-3-1.js new file mode 100644 index 0000000000..293420cc7d --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_6-3-1.js @@ -0,0 +1,52 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyAssignment : get PropertyName ( ) { FunctionBody } + 3.Let desc be the Property Descriptor{[[Get]]: closure, [[Enumerable]]: true, [[Configurable]]: true} +*/ + +ES5Harness.registerTest( { +id: "11.1.5_6-3-1", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_6-3-1.js", + +description: "Object literal - property descriptor for get property assignment", + +test: function testcase() { + + eval("var o = {get foo(){return 1;}};"); + var desc = Object.getOwnPropertyDescriptor(o,"foo"); + if(desc.enumerable === true && + desc.configurable === true) + return true; + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return fnExists(Object.getOwnPropertyDescriptor); +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_6-3-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_6-3-2.js new file mode 100644 index 0000000000..45663f3c8c --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_6-3-2.js @@ -0,0 +1,50 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyAssignment : get PropertyName ( ) { FunctionBody } + 3.Let desc be the Property Descriptor{[[Get]]: closure, [[Enumerable]]: true, [[Configurable]]: true} +*/ + +ES5Harness.registerTest( { +id: "11.1.5_6-3-2", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_6-3-2.js", + +description: "Object literal - property descriptor for get property assignment should not create a set function", + +test: function testcase() { + + eval("var o = {get foo(){return 1;}};"); + var desc = Object.getOwnPropertyDescriptor(o,"foo"); + return desc.set === undefined + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return fnExists(Object.getOwnPropertyDescriptor);; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_7-3-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_7-3-1.js new file mode 100644 index 0000000000..08cb35bb4f --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_7-3-1.js @@ -0,0 +1,52 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyAssignment : set PropertyName( PropertySetParameterList ) { FunctionBody } + 3.Let desc be the Property Descriptor{[[Set]]: closure, [[Enumerable]]: true, [[Configurable]]: true} +*/ + +ES5Harness.registerTest( { +id: "11.1.5_7-3-1", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_7-3-1.js", + +description: "Object literal - property descriptor for set property assignment", + +test: function testcase() { + + eval("var o = {set foo(arg){return 1;}};"); + var desc = Object.getOwnPropertyDescriptor(o,"foo"); + if(desc.enumerable === true && + desc.configurable === true) + return true; + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return fnExists(Object.getOwnPropertyDescriptor);; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_7-3-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_7-3-2.js new file mode 100644 index 0000000000..609d41a27a --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_7-3-2.js @@ -0,0 +1,50 @@ +/// 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. + + +/* + Refer 11.1.5; + The production + PropertyAssignment : get PropertyName ( ) { FunctionBody } + 3.Let desc be the Property Descriptor{[[Get]]: closure, [[Enumerable]]: true, [[Configurable]]: true} +*/ + +ES5Harness.registerTest( { +id: "11.1.5_7-3-2", + +path: "TestCases/chapter11/11.1/11.1.5/11.1.5_7-3-2.js", + +description: "Object literal - property descriptor for set property assignment should not create a get function", + +test: function testcase() { + + eval("var o = {set foo(arg){}};"); + var desc = Object.getOwnPropertyDescriptor(o,"foo"); + return desc.get === undefined + }, + +precondition: function () { + //accessor properties in object literals must be allowed + try {eval("({set foo(x) {}, get foo(){}});");} + catch(e) {return false} + return fnExists(Object.getOwnPropertyDescriptor);; +} + +}); diff --git a/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-1.js b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-1.js new file mode 100644 index 0000000000..1611f69971 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-1.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. + +/* +PutValue operates only on references (see step 1) +*/ + +ES5Harness.registerTest( { +id: "11.13.1-1-1", + +path: "TestCases/chapter11/11.13/11.13.1/11.13.1-1-1.js", + +description: "simple assignment throws ReferenceError if LeftHandSide is not a reference (number)", + +test: function testcase() { + try { + eval("42 = 42"); + } + catch (e) { + if (e instanceof ReferenceError) { + return true; + } + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-2.js b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-2.js new file mode 100644 index 0000000000..2f2791e088 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-2.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. + +/* +PutValue operates only on references (see step 1). +*/ + + +ES5Harness.registerTest( { +id: "11.13.1-1-2", + +path: "TestCases/chapter11/11.13/11.13.1/11.13.1-1-2.js", + +description: "simple assignment throws ReferenceError if LeftHandSide is not a reference (string)", + +test: function testcase() { + try { + eval("'x' = 42"); + } + catch (e) { + if (e instanceof ReferenceError) { + return true; + } + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-3.js b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-3.js new file mode 100644 index 0000000000..865c38a912 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-3.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. + +/* +PutValue operates only on references (see step 1). +*/ + + +ES5Harness.registerTest( { +id: "11.13.1-1-3", + +path: "TestCases/chapter11/11.13/11.13.1/11.13.1-1-3.js", + +description: "simple assignment throws ReferenceError if LeftHandSide is not a reference (boolean)", + +test: function testcase() { + try { + eval("true = 42"); + } + catch (e) { + if (e instanceof ReferenceError) { + return true; + } + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-4.js b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-4.js new file mode 100644 index 0000000000..d332b8c773 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-1-4.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. + +/* +PutValue operates only on references (see step 1). +*/ + + +ES5Harness.registerTest( { +id: "11.13.1-1-4", + +path: "TestCases/chapter11/11.13/11.13.1/11.13.1-1-4.js", + +description: "simple assignment throws ReferenceError if LeftHandSide is not a reference (null)", + +test: function testcase() { + try { + eval("null = 42"); + } + catch (e) { + if (e instanceof ReferenceError) { + return true; + } + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-4-1.js b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-4-1.js new file mode 100644 index 0000000000..8009c72d10 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.13/11.13.1/11.13.1-4-1.js @@ -0,0 +1,53 @@ +/// 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. + +/* +PutValue operates only on references (see step 3.b). +*/ + + +ES5Harness.registerTest( { +id: "11.13.1-4-1", + +path: "TestCases/chapter11/11.13/11.13.1/11.13.1-4-1.js", + +description: "simple assignment creates property on the global object if LeftHandSide is an unresolvable reference", + +test: function testcase() { + function foo() { + __ES3_1_test_suite_test_11_13_1_unique_id_3__ = 42; + } + foo(); + + var desc = Object.getOwnPropertyDescriptor(fnGlobalObject(), '__ES3_1_test_suite_test_11_13_1_unique_id_3__'); + if (desc.value === 42 && + desc.writable === true && + desc.enumerable === true && + desc.configurable === true) { + delete __ES3_1_test_suite_test_11_13_1_unique_id_3__; + return true; + } + }, + +precondition: function () { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-0-1.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-0-1.js new file mode 100644 index 0000000000..752b5cc0bf --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-0-1.js @@ -0,0 +1,44 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-0-1", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-0-1.js", + +description: "delete operator as UnaryExpression", + +test: function testcase() { + var x = 1; + var y = 2; + var z = 3; + + if( (!delete x || delete y) && + delete delete z) + { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-1.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-1.js new file mode 100644 index 0000000000..a0dce8dff4 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-1.js @@ -0,0 +1,35 @@ +/// 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: "11.4.1-2-1", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-2-1.js", + +description: "delete operator returns true when deleting a non-reference (number)", + +test: function testcase() { + var d = delete 42; + if (d === true) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-2.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-2.js new file mode 100644 index 0000000000..42809c6074 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-2.js @@ -0,0 +1,37 @@ +/// 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: "11.4.1-2-2", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-2-2.js", + +description: "delete operator returns true when deleting returned value from a function", + +test: function testcase() { + var bIsFooCalled = false; + var foo = function(){bIsFooCalled = true;}; + + var d = delete foo(); + if(d === true && bIsFooCalled === true) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-3.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-3.js new file mode 100644 index 0000000000..ff75f74673 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-3.js @@ -0,0 +1,35 @@ +/// 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: "11.4.1-2-3", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-2-3.js", + +description: "delete operator returns true when deleting a non-reference (boolean)", + +test: function testcase() { + var d = delete true; + if (d === true) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-4.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-4.js new file mode 100644 index 0000000000..2a78df8c03 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-4.js @@ -0,0 +1,35 @@ +/// 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: "11.4.1-2-4", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-2-4.js", + +description: "delete operator returns true when deleting a non-reference (string)", + +test: function testcase() { + var d = delete "abc"; + if (d === true) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-5.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-5.js new file mode 100644 index 0000000000..8c55da0bd1 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-5.js @@ -0,0 +1,35 @@ +/// 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: "11.4.1-2-5", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-2-5.js", + +description: "delete operator returns true when deleting a non-reference (obj)", + +test: function testcase() { + var d = delete {a:0} ; + if (d === true) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-6.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-6.js new file mode 100644 index 0000000000..3845af7f97 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-2-6.js @@ -0,0 +1,35 @@ +/// 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: "11.4.1-2-6", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-2-6.js", + +description: "delete operator returns true when deleting a non-reference (null)", + +test: function testcase() { + var d = delete null; + if (d === true) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-1.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-1.js new file mode 100644 index 0000000000..2763f90a21 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-1.js @@ -0,0 +1,36 @@ +/// 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: "11.4.1-3-1", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-3-1.js", + +description: "delete operator returns true when deleting an unresolvable reference", + +test: function testcase() { + // just cooking up a long/veryLikely unique name + var d = delete __ES3_1_test_suite_test_11_4_1_3_unique_id_0__; + if (d === true) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-2.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-2.js new file mode 100644 index 0000000000..f2b475cf6c --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-2.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: "11.4.1-3-2", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-3-2.js", + +description: "delete operator throws ReferenceError when deleting an explicitly qualified yet unresolvable reference (base obj undefined)", + +test: function testcase() { + // just cooking up a long/veryLikely unique name + try + { + var d = delete __ES3_1_test_suite_test_11_4_1_3_unique_id_2__.x; + } + catch(e) + { + if (e instanceof ReferenceError) + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-3.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-3.js new file mode 100644 index 0000000000..c121677b46 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-3-3.js @@ -0,0 +1,36 @@ +/// 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: "11.4.1-3-3", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-3-3.js", + +description: "delete operator returns true when deleting an explicitly qualified yet unresolvable reference (property undefined for base obj)", + +test: function testcase() { + var __ES3_1_test_suite_test_11_4_1_3_unique_id_3__ = {}; + var d = delete __ES3_1_test_suite_test_11_4_1_3_unique_id_3__.x; + if (d === true) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-1.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-1.js new file mode 100644 index 0000000000..bee271d5aa --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-1.js @@ -0,0 +1,49 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + + +ES5Harness.registerTest( { +id: "11.4.1-4.a-1", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-1.js", + +description: "delete operator returns true when deleting a configurable data property", + +test: function testcase() { + var o = {}; + + var desc = { value: 1, configurable: true }; + Object.defineProperty(o, "foo", desc); + + var d = delete o.foo; + if (d === true && o.hasOwnProperty("foo") === false) { + return true; + } + }, + +precondition: function prereq() { + return (fnExists(Object.defineProperty) && fnExists(Object.hasOwnProperty)); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-10.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-10.js new file mode 100644 index 0000000000..741feee25c --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-10.js @@ -0,0 +1,51 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-10", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-10.js", + +description: "delete operator returns true for property (stringify) defined on built-in object (JSON)", + +test: function testcase() { + try { + var o = JSON.stringify; + var desc; + try { + desc = Object.getOwnPropertyDescriptor(JSON, 'stringify') + } + catch (e) { + }; + var d = delete JSON.stringify; + if (d === true && JSON.stringify === undefined) { + return true; + } + } finally { + if (desc) Object.defineProperty(JSON, 'stringify', desc) + else JSON.stringify = o /* this branch messes up the attributes */; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-11.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-11.js new file mode 100644 index 0000000000..0c779517e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-11.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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-11", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-11.js", + +description: "delete operator returns true on deleting arguments propterties(arguments.callee)", + +test: function testcase() { + function foo(a,b) + { + return (delete arguments.callee); + } + var d = delete arguments.callee; + if(d === true && arguments.callee === undefined) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-12.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-12.js new file mode 100644 index 0000000000..705cc5f0b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-12.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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-12", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-12.js", + +description: "delete operator returns false when deleting a property(length)", + +test: function testcase() { + + var a = [1,2,3] + a.x = 10; + var d = delete a.length + if(d === false && a.length === 3) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-13.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-13.js new file mode 100644 index 0000000000..16015de6ed --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-13.js @@ -0,0 +1,48 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-13", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-13.js", + +description: "delete operator returns false when deleting Array object", + +test: function testcase() { + + var a = [1,2,3] + a.x = 10; + + var d = delete a + + if(d === false && Array.isArray(a) === true) + return true; + }, + +precondition: function () { + return fnExists(Array.isArray); + } + +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-14.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-14.js new file mode 100644 index 0000000000..74c21b23fc --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-14.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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-14", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-14.js", + +description: "delete operator returns true when deleting Array elements", + +test: function testcase() { + + var a = [1,2,3] + a.x = 10; + var d = delete a[1] + if(d === true && a[1] === undefined) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-15.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-15.js new file mode 100644 index 0000000000..489c7b49d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-15.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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-15", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-15.js", + +description: "delete operator returns true when deleting Array expandos", + +test: function testcase() { + + var a = [1,2,3] + a.x = 10; + var d = delete a.x; + if( d === true && a.x === undefined) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-16.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-16.js new file mode 100644 index 0000000000..94d41872fd --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-16.js @@ -0,0 +1,38 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-16", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-16.js", + +description: "delete operator returns false on deleting arguments object", + +test: function testcase() { + + if(delete arguments === false && arguments !== undefined) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-17.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-17.js new file mode 100644 index 0000000000..2a99cda530 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-17.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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-17", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-17.js", + +description: "delete operator returns true on deleting a arguments element", + +test: function testcase() { + function foo(a,b) + { + var d = delete arguments[0]; + return (d === true && arguments[0] === undefined); + } + + if(foo(1,2) === true) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-2.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-2.js new file mode 100644 index 0000000000..61c957d3b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-2.js @@ -0,0 +1,52 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + + +ES5Harness.registerTest( { +id: "11.4.1-4.a-2", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-2.js", + +description: "delete operator returns true when deleting a configurable accessor property", + +test: function testcase() { + var o = {}; + + // define an accessor + // dummy getter + var getter = function () { return 1; } + var desc = { get: getter, configurable: true }; + Object.defineProperty(o, "foo", desc); + + var d = delete o.foo; + if (d === true && o.hasOwnProperty("foo") === false) { + return true; + } + }, + +precondition: function prereq() { + return (fnExists(Object.defineProperty) && fnExists(Object.hasOwnProperty)); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-3.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-3.js new file mode 100644 index 0000000000..b22b3fd3d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-3.js @@ -0,0 +1,48 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-3", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-3.js", + +description: "delete operator returns false when deleting a non-configurable data property", + +test: function testcase() { + var o = {}; + var desc = { value : 1, configurable: false }; // all other attributes default to false + Object.defineProperty(o, "foo", desc); + + // Now, deleting o.foo should fail because [[Configurable]] on foo is false. + var d = delete o.foo; + if (d === false && o.hasOwnProperty("foo") === true) { + return true; + } + }, + +precondition: function prereq() { + return (fnExists(Object.defineProperty) && fnExists(Object.hasOwnProperty)); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-4.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-4.js new file mode 100644 index 0000000000..f867969c88 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-4.js @@ -0,0 +1,40 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-4", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-4.js", + +description: "delete operator returns false when deleting a non-configurable data property (NaN)", + +test: function testcase() { + // NaN (15.1.1.1) has [[Configurable]] set to false. + var d = delete NaN; + if (d === false) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-5.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-5.js new file mode 100644 index 0000000000..3031090a95 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-5.js @@ -0,0 +1,46 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-5", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-5.js", + +description: "delete operator returns false when deleting the environment object inside 'with'", + +test: function testcase() { + var o = new Object(); + o.x = 1; + var d; + with(o) + { + d = delete o; + } + if (d === false && typeof(o) === 'object' && o.x === 1) { + return true; + } + return false; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-6.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-6.js new file mode 100644 index 0000000000..245c267c28 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-6.js @@ -0,0 +1,45 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-6", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-6.js", + +description: "delete operator returns true when deleting a property inside 'with'", + +test: function testcase() { + var o = new Object(); + o.x = 1; + var d; + with(o) + { + d = delete x; + } + if (d === true && o.x === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-7.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-7.js new file mode 100644 index 0000000000..3a82246c72 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-7.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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-7", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-7.js", + +description: "delete operator inside 'eval'", + +test: function testcase() { + var x = 1; + var d = eval("delete x"); + if (d === false && x === 1) { + return true; + } + return false; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-8.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-8.js new file mode 100644 index 0000000000..a55f28f77d --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-8.js @@ -0,0 +1,44 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-8", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-8.js", + +description: "delete operator returns true for built-in objects (JSON)", + +test: function testcase() { + try { + var o = JSON; + var d = delete JSON; + if (d === true) { + return true; + } + } finally { + JSON = o; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-9.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-9.js new file mode 100644 index 0000000000..2f1dcaa92f --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-9.js @@ -0,0 +1,39 @@ +/// 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. + +/* +This test is actually testing the [[Delete]] internal method (8.12.8). Since the +language provides no way to directly exercise [[Delete]], the tests are placed here. +*/ + +ES5Harness.registerTest( { +id: "11.4.1-4.a-9", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-4.a-9.js", + +description: "delete operator returns false when deleting a non-configurable data property (Math.LN2)", + +test: function testcase() { + var d = delete Math.LN2; + if (d === false) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-1.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-1.js new file mode 100644 index 0000000000..02af8294e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-1.js @@ -0,0 +1,37 @@ +/// 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: "11.4.1-5-1", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-5-1.js", + +description: "delete operator returns false when deleting a direct reference to a var", + +test: function testcase() { + var x = 1; + + // Now, deleting 'x' directly should fail; + var d = delete x; + if(d === false && x === 1) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-2.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-2.js new file mode 100644 index 0000000000..db59bf2e33 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-2.js @@ -0,0 +1,40 @@ +/// 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: "11.4.1-5-2", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-5-2.js", + +description: "delete operator returns false when deleting a direct reference to a function argument", + +test: function testcase() { + + function foo(a,b) { + + // Now, deleting 'a' directly should fail + // because 'a' is direct reference to a function argument; + var d = delete a; + return (d === false && a === 1); + } + return foo(1,2); + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-3.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-3.js new file mode 100644 index 0000000000..b5ed647ba3 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-5-3.js @@ -0,0 +1,37 @@ +/// 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: "11.4.1-5-3", + +path: "TestCases/chapter11/11.4/11.4.1/11.4.1-5-3.js", + +description: "delete operator returns false when deleting a direct reference to a function name", + +test: function testcase() { + var foo = function(){}; + + // Now, deleting 'foo' directly should fail; + var d = delete foo; + if(d === false && fnExists(foo)) + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-1.js b/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-1.js new file mode 100644 index 0000000000..4e90fb17da --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-1.js @@ -0,0 +1,51 @@ +/// 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: "11.8.2-1", + + path: "TestCases/chapter11/11.8/11.8.2-1.js", + + description: "11.8.2 Greater-than Operator - Partial left to right order enforced when using Greater-than operator: valueOf > valueOf", + + test: function testcase() { + var accessed = false; + var obj1 = { + valueOf: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + valueOf: function () { + if (accessed === true) { + return 4; + } else { + return 2; + } + } + }; + return !(obj1 > obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-2.js b/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-2.js new file mode 100644 index 0000000000..08491fe893 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-2.js @@ -0,0 +1,51 @@ +/// 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: "11.8.2-2", + + path: "TestCases/chapter11/11.8/11.8.2-2.js", + + description: "11.8.2 Greater-than Operator - Partial left to right order enforced when using Greater-than operator: valueOf > toString", + + test: function testcase() { + var accessed = false; + var obj1 = { + valueOf: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + toString: function () { + if (accessed === true) { + return 4; + } else { + return 2; + } + } + }; + return !(obj1 > obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-3.js b/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-3.js new file mode 100644 index 0000000000..7eb3fa8089 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-3.js @@ -0,0 +1,51 @@ +/// 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: "11.8.2-3", + + path: "TestCases/chapter11/11.8/11.8.2-3.js", + + description: "11.8.2 Greater-than Operator - Partial left to right order enforced when using Greater-than operator: toString > valueOf", + + test: function testcase() { + var accessed = false; + var obj1 = { + toString: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + valueOf: function () { + if (accessed === true) { + return 4; + } else { + return 2; + } + } + }; + return !(obj1 > obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-4.js b/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-4.js new file mode 100644 index 0000000000..80237e3392 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.2/11.8.2-4.js @@ -0,0 +1,51 @@ +/// 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: "11.8.2-4", + + path: "TestCases/chapter11/11.8/11.8.2-4.js", + + description: "11.8.2 Greater-than Operator - Partial left to right order enforced when using Greater-than operator: toString > toString", + + test: function testcase() { + var accessed = false; + var obj1 = { + toString: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + toString: function () { + if (accessed === true) { + return 4; + } else { + return 2; + } + } + }; + return !(obj1 > obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-1.js b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-1.js new file mode 100644 index 0000000000..f1cbe6dcde --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-1.js @@ -0,0 +1,51 @@ +/// 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: "11.8.3-1", + + path: "TestCases/chapter11/11.8/11.8.2-1.js", + + description: "11.8.3 Less-than-or-equal Operator - Partial left to right order enforced when using Less-than-or-equal operator: valueOf <= valueOf", + + test: function testcase() { + var accessed = false; + var obj1 = { + valueOf: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + valueOf: function () { + if (accessed === true) { + return 4; + } else { + return 2; + } + } + }; + return (obj1 <= obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-2.js b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-2.js new file mode 100644 index 0000000000..8a2b63883f --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-2.js @@ -0,0 +1,51 @@ +/// 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: "11.8.3-2", + + path: "TestCases/chapter11/11.8/11.8.3-2.js", + + description: "11.8.3 Less-than-or-equal Operator - Partial left to right order enforced when using Less-than-or-equal operator: valueOf <= toString", + + test: function testcase() { + var accessed = false; + var obj1 = { + valueOf: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + toString: function () { + if (accessed === true) { + return 4; + } else { + return 2; + } + } + }; + return (obj1 <= obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-3.js b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-3.js new file mode 100644 index 0000000000..1d194d742d --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-3.js @@ -0,0 +1,51 @@ +/// 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: "11.8.3-3", + + path: "TestCases/chapter11/11.8/11.8.3-3.js", + + description: "11.8.3 Less-than-or-equal Operator - Partial left to right order enforced when using Less-than-or-equal operator: toString <= valueOf", + + test: function testcase() { + var accessed = false; + var obj1 = { + toString: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + valueOf: function () { + if (accessed === true) { + return 4; + } else { + return 2; + } + } + }; + return (obj1 <= obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-4.js b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-4.js new file mode 100644 index 0000000000..f1589a0728 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-4.js @@ -0,0 +1,51 @@ +/// 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: "11.8.3-4", + + path: "TestCases/chapter11/11.8/11.8.3-4.js", + + description: "11.8.3 Less-than-or-equal Operator - Partial left to right order enforced when using Less-than-or-equal operator: toString <= toString", + + test: function testcase() { + var accessed = false; + var obj1 = { + toString: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + toString: function () { + if (accessed === true) { + return 4; + } else { + return 2; + } + } + }; + return (obj1 <= obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-5.js b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-5.js new file mode 100644 index 0000000000..71ac2fd817 --- /dev/null +++ b/test/suite/ietestcenter/chapter11/11.8/11.8.3/11.8.3-5.js @@ -0,0 +1,51 @@ +/// 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: "11.8.3-5", + + path: "TestCases/chapter11/11.8/11.8.3-5.js", + + description: "11.8.3 Less-than-or-equal Operator - Partial left to right order enforced when using Less-than-or-equal operator: valueOf <= valueOf", + + test: function testcase() { + var accessed = false; + var obj1 = { + valueOf: function () { + accessed = true; + return 3; + } + }; + var obj2 = { + valueOf: function () { + if (accessed === true) { + return 3; + } else { + return 2; + } + } + }; + return (obj1 <= obj2); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-0-1.js b/test/suite/ietestcenter/chapter12/12.10/12.10-0-1.js new file mode 100644 index 0000000000..6b8d3275f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-0-1.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: "12.10-0-1", + +path: "TestCases/chapter12/12.10/12.10-0-1.js", + +description: "with does not change declaration scope - vars in with are visible outside", + +test: function testcase() { + var o = {}; + var f = function () { + /* capture foo binding before executing with */ + return foo; + } + + with (o) { + var foo = "12.10-0-1"; + } + + return f()==="12.10-0-1" + + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-0-10.js b/test/suite/ietestcenter/chapter12/12.10/12.10-0-10.js new file mode 100644 index 0000000000..d9a63c3d29 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-0-10.js @@ -0,0 +1,45 @@ +/// 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: "12.10-0-10", + +path: "TestCases/chapter12/12.10/12.10-0-10.js", + +description: "with introduces scope - name lookup finds function parameter", + +test: function testcase() { + function f(o) { + + function innerf(o, x) { + with (o) { + return x; + } + } + + return innerf(o, 42); + } + + if (f({}) === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-0-11.js b/test/suite/ietestcenter/chapter12/12.10/12.10-0-11.js new file mode 100644 index 0000000000..edbc73b636 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-0-11.js @@ -0,0 +1,47 @@ +/// 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: "12.10-0-11", + +path: "TestCases/chapter12/12.10/12.10-0-11.js", + +description: "with introduces scope - name lookup finds inner variable", + +test: function testcase() { + function f(o) { + + function innerf(o) { + var x = 42; + + with (o) { + return x; + } + } + + return innerf(o); + } + + if (f({}) === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-0-12.js b/test/suite/ietestcenter/chapter12/12.10/12.10-0-12.js new file mode 100644 index 0000000000..0ef2f0efa1 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-0-12.js @@ -0,0 +1,45 @@ +/// 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: "12.10-0-12", + +path: "TestCases/chapter12/12.10/12.10-0-12.js", + +description: "with introduces scope - name lookup finds property", + +test: function testcase() { + function f(o) { + + function innerf(o) { + with (o) { + return x; + } + } + + return innerf(o); + } + + if (f({x:42}) === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-0-3.js b/test/suite/ietestcenter/chapter12/12.10/12.10-0-3.js new file mode 100644 index 0000000000..31c1c98fe6 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-0-3.js @@ -0,0 +1,39 @@ +/// 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: "12.10-0-3", + +path: "TestCases/chapter12/12.10/12.10-0-3.js", + +description: "with introduces scope - that is captured by function expression", + +test: function testcase() { + var o = {prop: "12.10-0-3 before"}; + var f; + + with (o) { + f = function () { return prop; } + } + o.prop = "12.10-0-3 after"; + return f()==="12.10-0-3 after" + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-0-7.js b/test/suite/ietestcenter/chapter12/12.10/12.10-0-7.js new file mode 100644 index 0000000000..5926fa7238 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-0-7.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: "12.10-0-7", + +path: "TestCases/chapter12/12.10/12.10-0-7.js", + +description: "with introduces scope - scope removed when exiting with statement", + +test: function testcase() { + var o = {foo: 1}; + + with (o) { + foo = 42; + } + + try { + foo; + } + catch (e) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-0-8.js b/test/suite/ietestcenter/chapter12/12.10/12.10-0-8.js new file mode 100644 index 0000000000..14fe597dbc --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-0-8.js @@ -0,0 +1,38 @@ +/// 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: "12.10-0-8", + +path: "TestCases/chapter12/12.10/12.10-0-8.js", + +description: "with introduces scope - var initializer sets like named property", + +test: function testcase() { + var o = {foo: 42}; + + with (o) { + var foo = "set in with"; + } + + return o.foo === "set in with"; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-0-9.js b/test/suite/ietestcenter/chapter12/12.10/12.10-0-9.js new file mode 100644 index 0000000000..1e77928f76 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-0-9.js @@ -0,0 +1,46 @@ +/// 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: "12.10-0-9", + +path: "TestCases/chapter12/12.10/12.10-0-9.js", + +description: "with introduces scope - name lookup finds outer variable", + +test: function testcase() { + function f(o) { + var x = 42; + + function innerf(o) { + with (o) { + return x; + } + } + + return innerf(o); + } + + if (f({}) === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-2-1.js b/test/suite/ietestcenter/chapter12/12.10/12.10-2-1.js new file mode 100644 index 0000000000..b9b3292213 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-2-1.js @@ -0,0 +1,44 @@ +/// 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: "12.10-2-1", + +path: "TestCases/chapter12/12.10/12.10-2-1.js", + +description: "with - expression being Number", + +test: function testcase() { + var o = 2; + var foo = 1; + try + { + with (o) { + foo = 42; + } + } + catch(e) + { + } + return true; + + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-2-2.js b/test/suite/ietestcenter/chapter12/12.10/12.10-2-2.js new file mode 100644 index 0000000000..c875a666b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-2-2.js @@ -0,0 +1,44 @@ +/// 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: "12.10-2-2", + +path: "TestCases/chapter12/12.10/12.10-2-2.js", + +description: "with - expression being Boolean", + +test: function testcase() { + var o = true; + var foo = 1; + try + { + with (o) { + foo = 42; + } + } + catch(e) + { + } + return true; + + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-2-3.js b/test/suite/ietestcenter/chapter12/12.10/12.10-2-3.js new file mode 100644 index 0000000000..976ce7f902 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-2-3.js @@ -0,0 +1,44 @@ +/// 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: "12.10-2-3", + +path: "TestCases/chapter12/12.10/12.10-2-3.js", + +description: "with - expression being string", + +test: function testcase() { + var o = "str"; + var foo = 1; + try + { + with (o) { + foo = 42; + } + } + catch(e) + { + } + return true; + + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.10/12.10-7-1.js b/test/suite/ietestcenter/chapter12/12.10/12.10-7-1.js new file mode 100644 index 0000000000..7faa9d9f82 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.10/12.10-7-1.js @@ -0,0 +1,49 @@ +/// 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: "12.10-7-1", + +path: "TestCases/chapter12/12.10/12.10-7-1.js", + +description: "with introduces scope - restores the earlier environment on exit", + +test: function testcase() { + var a = 1; + + var o = {a : 2}; + try + { + with (o) { + a = 3; + throw 1; + a = 4; + } + } + catch(e) + {} + + if (a === 1 && o.a === 3) { + return true; + } + + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-1.js b/test/suite/ietestcenter/chapter12/12.14/12.14-1.js new file mode 100644 index 0000000000..0ed1d6bf8c --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-1.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: "12.14-1", + +path: "TestCases/chapter12/12.14/12.14-1.js", + +description: "catch doesn't change declaration scope - var initializer in catch with same name as catch parameter changes parameter", + +test: function testcase() { + foo = "prior to throw"; + try { + throw new Error(); + } + catch (foo) { + var foo = "initializer in catch"; + } + return foo === "prior to throw"; + + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-10.js b/test/suite/ietestcenter/chapter12/12.14/12.14-10.js new file mode 100644 index 0000000000..98e5103af8 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-10.js @@ -0,0 +1,48 @@ +/// 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: "12.14-10", + +path: "TestCases/chapter12/12.14/12.14-10.js", + +description: "catch introduces scope - name lookup finds function parameter", + +test: function testcase() { + function f(o) { + + function innerf(o, x) { + try { + throw o; + } + catch (e) { + return x; + } + } + + return innerf(o, 42); + } + + if (f({}) === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-11.js b/test/suite/ietestcenter/chapter12/12.14/12.14-11.js new file mode 100644 index 0000000000..0f7c8e75bc --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-11.js @@ -0,0 +1,50 @@ +/// 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: "12.14-11", + +path: "TestCases/chapter12/12.14/12.14-11.js", + +description: "catch introduces scope - name lookup finds inner variable", + +test: function testcase() { + function f(o) { + + function innerf(o) { + var x = 42; + + try { + throw o; + } + catch (e) { + return x; + } + } + + return innerf(o); + } + + if (f({}) === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-12.js b/test/suite/ietestcenter/chapter12/12.14/12.14-12.js new file mode 100644 index 0000000000..1b7c4e7a33 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-12.js @@ -0,0 +1,48 @@ +/// 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: "12.14-12", + +path: "TestCases/chapter12/12.14/12.14-12.js", + +description: "catch introduces scope - name lookup finds property", + +test: function testcase() { + function f(o) { + + function innerf(o) { + try { + throw o; + } + catch (e) { + return e.x; + } + } + + return innerf(o); + } + + if (f({x:42}) === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-13.js b/test/suite/ietestcenter/chapter12/12.14/12.14-13.js new file mode 100644 index 0000000000..49b16fe8d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-13.js @@ -0,0 +1,59 @@ +/// 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: "12.14-13", + +path: "TestCases/chapter12/12.14/12.14-13.js", + +description: "catch introduces scope - updates are based on scope", + +test: function testcase() { + var res1 = false; + var res2 = false; + var res3 = false; + + var x_12_14_13 = 'local'; + try { + function foo() { + this.x_12_14_13 = 'instance'; + } + + try { + throw foo; + } + catch (e) { + res1 = (x_12_14_13 === 'local'); + e(); + res2 = (x_12_14_13 === 'local'); + } + res3 = (x_12_14_13 === 'local'); + + if (res1 === true && + res2 === true && + res3 === true) { + return true; + } + } finally { + delete this.x_12_14_13; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-14.js b/test/suite/ietestcenter/chapter12/12.14/12.14-14.js new file mode 100644 index 0000000000..7ad21e2d01 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-14.js @@ -0,0 +1,47 @@ +/// 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: "12.14-14", + + path: "TestCases/chapter12/12.14/12.14-14.js", + + description: "Exception object is a function, when an exception parameter is called as a function in catch block, global object is passed as the this value", + + test: function testcase() { + try { + throw function () { + this._12_14_14_foo = "test"; + }; + return false; + } catch (e) { + e(); + return fnGlobalObject()._12_14_14_foo === "test"; + } + finally { + delete fnGlobalObject()._12_14_14_foo; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-15.js b/test/suite/ietestcenter/chapter12/12.14/12.14-15.js new file mode 100644 index 0000000000..3020bf43d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-15.js @@ -0,0 +1,49 @@ +/// 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: "12.14-15", + + path: "TestCases/chapter12/12.14/12.14-15.js", + + description: "Exception object is a function which is a property of an object, when an exception parameter is called as a function in catch block, global object is passed as the this value", + + test: function testcase() { + var obj = {}; + obj.test = function () { + this._12_14_15_foo = "test"; + }; + try { + throw obj.test; + return false; + } catch (e) { + e(); + return fnGlobalObject()._12_14_15_foo === "test"; + } + finally { + delete fnGlobalObject()._12_14_15_foo; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-16.js b/test/suite/ietestcenter/chapter12/12.14/12.14-16.js new file mode 100644 index 0000000000..87f5053823 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-16.js @@ -0,0 +1,53 @@ +/// 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: "12.14-16", + + path: "TestCases/chapter12/12.14/12.14-16.js", + + description: "Exception object is a function which update in catch block, when an exception parameter is called as a function in catch block, global object is passed as the this value", + + test: function testcase() { + try { + throw function () { + this._12_14_16_foo = "test"; + }; + return false; + } catch (e) { + var obj = {}; + obj.test = function () { + this._12_14_16_foo = "test1"; + }; + e = obj.test; + e(); + return fnGlobalObject()._12_14_16_foo === "test1"; + } + finally { + delete fnGlobalObject()._12_14_16_foo; + } + + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-2.js b/test/suite/ietestcenter/chapter12/12.14/12.14-2.js new file mode 100644 index 0000000000..b72d4506a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-2.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: "12.14-2", + +path: "TestCases/chapter12/12.14/12.14-2.js", + +description: "catch doesn't change declaration scope - var initializer in catch with same name as catch parameter changes parameter", + +test: function testcase() { + function capturedFoo() {return foo}; + foo = "prior to throw"; + try { + throw new Error(); + } + catch (foo) { + var foo = "initializer in catch"; + return capturedFoo() !== "initializer in catch"; + } + + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-3.js b/test/suite/ietestcenter/chapter12/12.14/12.14-3.js new file mode 100644 index 0000000000..0df1b6b5e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-3.js @@ -0,0 +1,49 @@ +/// 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. + +/* +local vars must not be visible outside with block +local functions must not be visible outside with block +local function expresssions should not be visible outside with block +local vars must shadow outer vars +local functions must shadow outer functions +local function expresssions must shadow outer function expressions +eval should use the appended object to the scope chain +*/ + + +ES5Harness.registerTest( { +id: "12.14-3", + +path: "TestCases/chapter12/12.14/12.14-3.js", + +description: "catch doesn't change declaration scope - var declaration are visible outside when name different from catch parameter", + +test: function testcase() { + try { + throw new Error(); + } + catch (e) { + var foo = "declaration in catch"; + } + + return foo === "declaration in catch"; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-4.js b/test/suite/ietestcenter/chapter12/12.14/12.14-4.js new file mode 100644 index 0000000000..4a11d39120 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-4.js @@ -0,0 +1,53 @@ +/// 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. + +/* +local vars must not be visible outside with block +local functions must not be visible outside with block +local function expresssions should not be visible outside with block +local vars must shadow outer vars +local functions must shadow outer functions +local function expresssions must shadow outer function expressions +eval should use the appended object to the scope chain +*/ + + +ES5Harness.registerTest( { +id: "12.14-4", + +path: "TestCases/chapter12/12.14/12.14-4.js", + +description: "catch introduces scope - block-local vars must shadow outer vars", + +test: function testcase() { + var o = { foo : 42}; + + try { + throw o; + } + catch (e) { + var foo; + + if (foo === undefined) { + return true; + } + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-5.js b/test/suite/ietestcenter/chapter12/12.14/12.14-5.js new file mode 100644 index 0000000000..da1cc3e0b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-5.js @@ -0,0 +1,52 @@ +/// 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. + +/* +local vars must not be visible outside with block +local functions must not be visible outside with block +local function expresssions should not be visible outside with block +local vars must shadow outer vars +local functions must shadow outer functions +local function expresssions must shadow outer function expressions +eval should use the appended object to the scope chain +*/ + + +ES5Harness.registerTest( { +id: "12.14-5", + +path: "TestCases/chapter12/12.14/12.14-5.js", + +description: "catch introduces scope - block-local functions must shadow outer functions", + +test: function testcase() { + var o = {foo: function () { return 42;}}; + + try { + throw o; + } + catch (e) { + function foo() {} + if (foo() === undefined) { + return true; + } + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-6.js b/test/suite/ietestcenter/chapter12/12.14/12.14-6.js new file mode 100644 index 0000000000..92e6dbdc59 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-6.js @@ -0,0 +1,52 @@ +/// 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. + +/* +local vars must not be visible outside with block +local functions must not be visible outside with block +local function expresssions should not be visible outside with block +local vars must shadow outer vars +local functions must shadow outer functions +local function expresssions must shadow outer function expressions +eval should use the appended object to the scope chain +*/ + + +ES5Harness.registerTest( { +id: "12.14-6", + +path: "TestCases/chapter12/12.14/12.14-6.js", + +description: "catch introduces scope - block-local function expression must shadow outer function expression", + +test: function testcase() { + var o = {foo : function () { return 42;}}; + + try { + throw o; + } + catch (e) { + var foo = function () {}; + if (foo() === undefined) { + return true; + } + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-7.js b/test/suite/ietestcenter/chapter12/12.14/12.14-7.js new file mode 100644 index 0000000000..d8da127c91 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-7.js @@ -0,0 +1,62 @@ +/// 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. + +/* +local vars must not be visible outside with block +local functions must not be visible outside with block +local function expresssions should not be visible outside with block +local vars must shadow outer vars +local functions must shadow outer functions +local function expresssions must shadow outer function expressions +eval should use the appended object to the scope chain +*/ + + +ES5Harness.registerTest( { +id: "12.14-7", + +path: "TestCases/chapter12/12.14/12.14-7.js", + +description: "catch introduces scope - scope removed when exiting catch block", + +test: function testcase() { + var o = {foo: 1}; + var catchAccessed = false; + + try { + throw o; + } + catch (expObj) { + catchAccessed = (expObj.foo == 1); + } + + try { + expObj; + } + catch (e) { + return catchAccessed && e instanceof ReferenceError + } + return false; + }, + precondition: function prereq() { + return true; + } + +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-8.js b/test/suite/ietestcenter/chapter12/12.14/12.14-8.js new file mode 100644 index 0000000000..81ad12fb91 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-8.js @@ -0,0 +1,53 @@ +/// 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. + +/* +local vars must not be visible outside with block +local functions must not be visible outside with block +local function expresssions should not be visible outside with block +local vars must shadow outer vars +local functions must shadow outer functions +local function expresssions must shadow outer function expressions +eval should use the appended object to the scope chain +*/ + + +ES5Harness.registerTest( { +id: "12.14-8", + +path: "TestCases/chapter12/12.14/12.14-8.js", + +description: "catch introduces scope - scope removed when exiting catch block (properties)", + +test: function testcase() { + var o = {foo: 42}; + + try { + throw o; + } + catch (e) { + var foo = 1; + } + + if (o.foo === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.14/12.14-9.js b/test/suite/ietestcenter/chapter12/12.14/12.14-9.js new file mode 100644 index 0000000000..4f0aacc849 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.14/12.14-9.js @@ -0,0 +1,49 @@ +/// 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: "12.14-9", + +path: "TestCases/chapter12/12.14/12.14-9.js", + +description: "catch introduces scope - name lookup finds outer variable", + +test: function testcase() { + function f(o) { + var x = 42; + + function innerf(o) { + try { + throw o; + } + catch (e) { + return x; + } + } + + return innerf(o); + } + + if (f({}) === 42) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.2/12.2.1/12.2.1-11.js b/test/suite/ietestcenter/chapter12/12.2/12.2.1/12.2.1-11.js new file mode 100644 index 0000000000..1e2725fd4d --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.2/12.2.1/12.2.1-11.js @@ -0,0 +1,33 @@ +/// 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: "12.2.1-11", + +path: "TestCases/chapter12/12.2/12.2.1/12.2.1-11.js", + +description: "arguments as var identifier in eval code is allowed", + +test: function testcase() { + eval("var arguments;"); + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.2/12.2.1/12.2.1-12.js b/test/suite/ietestcenter/chapter12/12.2/12.2.1/12.2.1-12.js new file mode 100644 index 0000000000..61456c048d --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.2/12.2.1/12.2.1-12.js @@ -0,0 +1,33 @@ +/// 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: "12.2.1-12", + +path: "TestCases/chapter12/12.2/12.2.1/12.2.1-12.js", + +description: "arguments as local var identifier is allowed", + +test: function testcase() { + eval("(function (){var arguments;})"); + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-1.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-1.js new file mode 100644 index 0000000000..796dc86f66 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-1.js @@ -0,0 +1,49 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-1", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-1.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is an Object with value false", + + test: function testcase() { + var accessed = false; + var obj = { value: false }; + for (var i = 0; obj; ) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); + diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-10.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-10.js new file mode 100644 index 0000000000..f0a4c27b87 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-10.js @@ -0,0 +1,48 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-10", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-10.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a String object (value is '1')", + + test: function testcase() { + var accessed = false; + var strObj = new String("1"); + for (var i = 0; strObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-11.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-11.js new file mode 100644 index 0000000000..37b6d9238c --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-11.js @@ -0,0 +1,46 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-11", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-11.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is undefined", + + test: function testcase() { + var count = 0; + for (var i = 0; undefined;) { + count++; + } + return count === 0; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-12.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-12.js new file mode 100644 index 0000000000..ea35388c0d --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-12.js @@ -0,0 +1,46 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-12", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-12.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is null", + + test: function testcase() { + var count = 0; + for (var i = 0; null;) { + count++; + } + return count === 0; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-13.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-13.js new file mode 100644 index 0000000000..2ee34e3e39 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-13.js @@ -0,0 +1,46 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-13", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-13.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a boolean (value is false)", + + test: function testcase() { + var count = 0; + for (var i = 0; false;) { + count++; + } + return count === 0; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-14.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-14.js new file mode 100644 index 0000000000..3020be6735 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-14.js @@ -0,0 +1,46 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-14", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-14.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a number (value is NaN)", + + test: function testcase() { + var count = 0; + for (var i = 0; NaN;) { + count++; + } + return count === 0; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-15.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-15.js new file mode 100644 index 0000000000..788b57ef7c --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-15.js @@ -0,0 +1,46 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-15", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-15.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a number (value is +0)", + + test: function testcase() { + var count = 0; + for (var i = 0; +0;) { + count++; + } + return count === 0; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-16.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-16.js new file mode 100644 index 0000000000..4195895f70 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-16.js @@ -0,0 +1,46 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-16", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-16.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a number (value is -0)", + + test: function testcase() { + var count = 0; + for (var i = 0; -0;) { + count++; + } + return count === 0; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-17.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-17.js new file mode 100644 index 0000000000..436a3d4a93 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-17.js @@ -0,0 +1,47 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-17", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-17.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a number (value is a positive)", + + test: function testcase() { + var accessed = false; + for (var i = 0; 2;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-18.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-18.js new file mode 100644 index 0000000000..5c2261bdcf --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-18.js @@ -0,0 +1,46 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-18", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-18.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a string (value is empty string)", + + test: function testcase() { + var count = 0; + for (var i = 0; "";) { + count++; + } + return count === 0; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-19.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-19.js new file mode 100644 index 0000000000..a0aba8fa2c --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-19.js @@ -0,0 +1,47 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-19", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-19.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a string (value is 'undefined')", + + test: function testcase() { + var accessed = false; + for (var i = 0; "undefined";) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-2.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-2.js new file mode 100644 index 0000000000..24bd265d63 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-2.js @@ -0,0 +1,49 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-2", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-2.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a Boolean object", + + test: function testcase() { + var accessed = false; + var boolObj = new Boolean(false); + for (var i = 0; boolObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); + diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-20.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-20.js new file mode 100644 index 0000000000..27a7c1f93e --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-20.js @@ -0,0 +1,47 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-20", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-20.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a string (value is 'null')", + + test: function testcase() { + var accessed = false; + for (var i = 0; "null";) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-21.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-21.js new file mode 100644 index 0000000000..78c987138a --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-21.js @@ -0,0 +1,47 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-21", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-21.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a string (value is '1')", + + test: function testcase() { + var accessed = false; + for (var i = 0; "1";) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-3.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-3.js new file mode 100644 index 0000000000..16734cb60c --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-3.js @@ -0,0 +1,49 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-3", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-3.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a Number object (value is NaN)", + + test: function testcase() { + var accessed = false; + var numObj = new Number(NaN); + for (var i = 0; numObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); + diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-4.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-4.js new file mode 100644 index 0000000000..6bf6047416 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-4.js @@ -0,0 +1,49 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-4", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-4.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a Number object (value is +0)", + + test: function testcase() { + var accessed = false; + var numObj = new Number(+0); + for (var i = 0; numObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); + diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-5.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-5.js new file mode 100644 index 0000000000..e7d8ffd3f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-5.js @@ -0,0 +1,48 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-5", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-5.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a Number object (value is -0)", + + test: function testcase() { + var accessed = false; + var numObj = new Number(-0); + for (var i = 0; numObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-6.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-6.js new file mode 100644 index 0000000000..9904cb3628 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-6.js @@ -0,0 +1,48 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-6", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-6.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a Number object (value is a positive)", + + test: function testcase() { + var accessed = false; + var numObj = new Number(12); + for (var i = 0; numObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-7.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-7.js new file mode 100644 index 0000000000..704d0f2a3c --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-7.js @@ -0,0 +1,50 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-7", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-7.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a String object (value is empty string)", + + test: function testcase() { + var accessed = false; + var strObj = new String(""); + for (var i = 0; strObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); + + diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-8.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-8.js new file mode 100644 index 0000000000..d07883e22b --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-8.js @@ -0,0 +1,48 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-8", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-8.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a String object (value is 'undefined')", + + test: function testcase() { + var accessed = false; + var strObj = new String("undefined"); + for (var i = 0; strObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-9.js b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-9.js new file mode 100644 index 0000000000..61ec77f13a --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-9.js @@ -0,0 +1,48 @@ +/// 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. + +/* +Refer 12.6.3; +The production + IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement +is evaluated as follows: +*/ + +ES5Harness.registerTest({ + id: "12.6.3_2-3-a-ii-9", + + path: "TestCases/chapter12/12.6/12.6.3/12.6.3_2-3-a-ii-9.js", + + description: "The for Statement - (normal, V, empty) will be returned when first Expression is a String object (value is 'null')", + + test: function testcase() { + var accessed = false; + var strObj = new String("null"); + for (var i = 0; strObj;) { + accessed = true; + break; + } + return accessed; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.4/12.6.4-1.js b/test/suite/ietestcenter/chapter12/12.6/12.6.4/12.6.4-1.js new file mode 100644 index 0000000000..c2d92e7039 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.4/12.6.4-1.js @@ -0,0 +1,57 @@ +/// 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: "12.6.4-1", + + path: "TestCases/chapter12/12.6/12.6.4/12.6.4-1.js", + + description: "The for-in Statement - a property name must not be visited more than once in any enumeration.", + + test: function testcase() { + var obj = { prop1: "abc", prop2: "bbc", prop3: "cnn" }; + + var countProp1 = 0; + var countProp2 = 0; + var countProp3 = 0; + + for (var p in obj) { + if (obj.hasOwnProperty(p)) { + if (p === "prop1") { + countProp1++; + } + if (p === "prop2") { + countProp2++; + } + if (p === "prop3") { + countProp3++; + } + } + } + return countProp1 === 1 && countProp2 === 1 && countProp3 === 1; + }, + + + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.6/12.6.4/12.6.4-2.js b/test/suite/ietestcenter/chapter12/12.6/12.6.4/12.6.4-2.js new file mode 100644 index 0000000000..439a19cd8a --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.6/12.6.4/12.6.4-2.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: "12.6.4-2", + + path: "TestCases/chapter12/12.6/12.6.4/12.6.4-2.js", + + description: "The for-in Statement - the values of [[Enumerable]] attributes are not considered when determining if a property of a prototype object is shadowed by a previous object on the prototype chain", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "prop", { + value: "inheritedValue", + enumerable: false, + configurable: true, + writable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(child, "prop1", { + value: "overridedValue1", + enumerable: false + }); + Object.defineProperty(child, "prop2", { + value: "overridedValue2", + enumerable: true + }); + var accessedProp1 = false; + var accessedProp2 = false; + + for (var p in child) { + if (child.hasOwnProperty(p)) { + if (p === "prop1") { + accessedProp1 = true; + } + if (p === "prop2") { + accessedProp2 = true; + } + } + } + return !accessedProp1 && accessedProp2 && child.prop1 === "overridedValue1" && child.prop2 === "overridedValue2"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.7/12.7-1.js b/test/suite/ietestcenter/chapter12/12.7/12.7-1.js new file mode 100644 index 0000000000..ea9584626c --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.7/12.7-1.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: "12.7-1", + + path: "TestCases/chapter12/12.7/12.7-1.js", + + description: "The continue Statement - a continue statement without an identifier may have a LineTerminator before the semi-colon", + + test: function testcase() { + var sum = 0; + for (var i = 1; i <= 10; i++) { + continue + ; + sum += i; + } + return sum === 0; + }, + + precondition: function prereq() { + return true; + } +}); + diff --git a/test/suite/ietestcenter/chapter12/12.8/12.8-1.js b/test/suite/ietestcenter/chapter12/12.8/12.8-1.js new file mode 100644 index 0000000000..4cd8c031e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.8/12.8-1.js @@ -0,0 +1,44 @@ +/// 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: "12.8-1", + + path: "TestCases/chapter12/12.8/12.8-1.js", + + description: "The break Statement - a break statement without an identifier may have a LineTerminator before the semi-colon", + + test: function testcase() { + var sum = 0; + for (var i = 1; i <= 10; i++) { + if (i === 6) { + break + ; + } + sum += i; + } + return sum === 15; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter12/12.9/12.9-1.js b/test/suite/ietestcenter/chapter12/12.9/12.9-1.js new file mode 100644 index 0000000000..67b9896fd8 --- /dev/null +++ b/test/suite/ietestcenter/chapter12/12.9/12.9-1.js @@ -0,0 +1,46 @@ +/// 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: "12.9-1", + + path: "TestCases/chapter12/12.9/12.9-1.js", + + description: "The return Statement - a return statement without an expression may have a LineTerminator before the semi-colon", + + test: function testcase() { + var sum = 0; + (function innerTest() { + for (var i = 1; i <= 10; i++) { + if (i === 6) { + return + ; + } + sum += i; + } + })(); + return sum === 15; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter13/13.2/13.2-15-1.js b/test/suite/ietestcenter/chapter13/13.2/13.2-15-1.js new file mode 100644 index 0000000000..5e955e74c6 --- /dev/null +++ b/test/suite/ietestcenter/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/test/suite/ietestcenter/chapter13/13.2/13.2-17-1.js b/test/suite/ietestcenter/chapter13/13.2/13.2-17-1.js new file mode 100644 index 0000000000..b43ae91a5b --- /dev/null +++ b/test/suite/ietestcenter/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/test/suite/ietestcenter/chapter13/13.2/13.2-18-1.js b/test/suite/ietestcenter/chapter13/13.2/13.2-18-1.js new file mode 100644 index 0000000000..2e6f4cc1b0 --- /dev/null +++ b/test/suite/ietestcenter/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/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.1/15.1.1.1-0.js b/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.1/15.1.1.1-0.js new file mode 100644 index 0000000000..a1dbb47a3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.1/15.1.1.1-0.js @@ -0,0 +1,45 @@ +/// 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. + + + +var global = this; + + +ES5Harness.registerTest( { +id: "15.1.1.1-0", + +path: "TestCases/chapter15/15.1/15.1.1/15.1.1.1/15.1.1.1-0.js", + +description: "Global.NaN is a data property with default attribute values (false)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(global, 'NaN'); + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.2/15.1.1.2-0.js b/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.2/15.1.1.2-0.js new file mode 100644 index 0000000000..497cf81373 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.2/15.1.1.2-0.js @@ -0,0 +1,45 @@ +/// 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. + + + +var global = this; + + +ES5Harness.registerTest( { +id: "15.1.1.2-0", + +path: "TestCases/chapter15/15.1/15.1.1/15.1.1.2/15.1.1.2-0.js", + +description: "Global.Infinity is a data property with default attribute values (false)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(global, 'Infinity'); + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.3/15.1.1.3-0.js b/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.3/15.1.1.3-0.js new file mode 100644 index 0000000000..f21a8952ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.1/15.1.1/15.1.1.3/15.1.1.3-0.js @@ -0,0 +1,45 @@ +/// 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. + + + +var global = this; + + +ES5Harness.registerTest( { +id: "15.1.1.3-0", + +path: "TestCases/chapter15/15.1/15.1.1/15.1.1.3/15.1.1.3-0.js", + +description: "Global.undefined is a data property with default attribute values (false)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(global, 'undefined'); + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.1/15.1.2/15.1.2.2/15.1.2.2-2-1.js b/test/suite/ietestcenter/chapter15/15.1/15.1.2/15.1.2.2/15.1.2.2-2-1.js new file mode 100644 index 0000000000..5a9705eb4b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.1/15.1.2/15.1.2.2/15.1.2.2-2-1.js @@ -0,0 +1,36 @@ +/// 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: "15.1.2.2-2-1", + + path: "TestCases/chapter15/15.1/15.1.2/15.1.2.2/15.1.2.2-2-1.js", + + description: "pareseInt - 'S' is the empty string when inputString does not contain any such characters", + + test: function testcase() { + return isNaN(parseInt("")) && parseInt("") !== parseInt(""); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.1/15.1.2/15.1.2.3/15.1.2.3-2-1.js b/test/suite/ietestcenter/chapter15/15.1/15.1.2/15.1.2.3/15.1.2.3-2-1.js new file mode 100644 index 0000000000..3170b21b68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.1/15.1.2/15.1.2.3/15.1.2.3-2-1.js @@ -0,0 +1,36 @@ +/// 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: "15.1.2.3-2-1", + + path: "TestCases/chapter15/15.1/15.1.2/15.1.2.3/15.1.2.3-2-1.js", + + description: "pareseFloat - 'trimmedString' is the empty string when inputString does not contain any such characters", + + test: function testcase() { + return isNaN(parseFloat("")) && parseFloat("") !== parseFloat(""); + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-3-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-3-1.js new file mode 100644 index 0000000000..1574f43f66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-3-1.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: "15.10.2.15-3-1", + + path: "TestCases/15.10.2.15-3-1.js", + + description: "Pattern - SyntaxError was thrown when 'A' does not contain exactly one character (15.10.2.5 step 3)", + + test: function testcase() { + try { + var regExp = new RegExp("^[/w-c]$"); + + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-3-2.js b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-3-2.js new file mode 100644 index 0000000000..36404c2809 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-3-2.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: "15.10.2.15-3-2", + + path: "TestCases/15.10.2.15-3-2.js", + + description: "Pattern - SyntaxError was thrown when 'B' does not contain exactly one character (15.10.2.5 step 3)", + + test: function testcase() { + try { + var regExp = new RegExp("^[a-/w]$"); + + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-6-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-6-1.js new file mode 100644 index 0000000000..752569f930 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.15-6-1.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: "15.10.2.15-6-1", + + path: "TestCases/15.10.2.15-6-1.js", + + description: "Pattern - SyntaxError was thrown when one character in CharSet 'A' greater than one character in CharSet 'B' (15.10.2.15 CharacterRange step 6)", + + test: function testcase() { + try { + var regExp = new RegExp("^[z-a]$"); + + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.2-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.2-1.js new file mode 100644 index 0000000000..7047822445 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.2-1.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: "15.10.2.2-1", + + path: "TestCases/15.10.2.2-1.js", + + description: "Pattern - SyntaxError was thrown when compile a pattern", + + test: function testcase() { + try { + var regExp = new RegExp("\\"); + + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.5-3-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.5-3-1.js new file mode 100644 index 0000000000..805a58d15e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.2/15.10.2.5-3-1.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: "15.10.2.5-3-1", + + path: "TestCases/15.10.2.5-3-1.js", + + description: "Term - SyntaxError was thrown when max is finite and less than min (15.10.2.5 step 3)", + + test: function testcase() { + try { + var regExp = new RegExp("0{2,1}"); + + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-1.js new file mode 100644 index 0000000000..00585ebfb8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-1.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: "15.10.4.1-1", + + path: "TestCases/chapter15/15.10/15.10.4.1/15.10.4.1-1.js", + + description: "RegExp - the thrown error is TypeError instead of RegExpError when pattern is an object whose [[Class]] property is 'RegExp' and flags is not undefined ", + + test: function testcase() { + var regObj = new RegExp(); + try { + var regExpObj = new RegExp(regObj, true); + + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-2.js b/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-2.js new file mode 100644 index 0000000000..c5d0dd25cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-2.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: "15.10.4.1-2", + + path: "TestCases/chapter15/15.10/15.10.4.1/15.10.4.1-2.js", + + description: "RegExp - the thrown error is SyntaxError instead of RegExpError when the characters of 'P' do not have the syntactic form Pattern", + + test: function testcase() { + try { + var regExpObj = new RegExp('\\'); + + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-3.js b/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-3.js new file mode 100644 index 0000000000..b0c83206e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-3.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: "15.10.4.1-3", + + path: "TestCases/chapter15/15.10/15.10.4.1/15.10.4.1-3.js", + + description: "RegExp - the thrown error is SyntaxError instead of RegExpError when 'F' contains any character other than 'g', 'i', or 'm' ", + + test: function testcase() { + try { + var regExpObj = new RegExp('abc', 'a'); + + return false; + } catch (e) { + return e instanceof SyntaxError; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-4.js b/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-4.js new file mode 100644 index 0000000000..09386d19c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.4/15.10.4.1-4.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: "15.10.4.1-4", + + path: "TestCases/chapter15/15.10/15.10.4.1/15.10.4.1-4.js", + + description: "RegExp - the SyntaxError is not thrown when flags is 'gim'", + + test: function testcase() { + try { + var regExpObj = new RegExp('abc', 'gim'); + + return true; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.2/15.10.6.2-9-e-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.2/15.10.6.2-9-e-1.js new file mode 100644 index 0000000000..3b0f672142 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.2/15.10.6.2-9-e-1.js @@ -0,0 +1,40 @@ +/// 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: "15.10.6.2-9-e-1", + + path: "TestCases/chapter15/15.10/15.10.6/15.10.6.2/15.10.6.2-9-e-1.js", + + description: "RegExp.prototype.exec - the removed step 9.e won't affected current algorithm", + + test: function testcase() { + var str = "Hello World!"; + var regObj = new RegExp("World"); + var result = false; + result = regObj.exec(str).toString() === "World"; + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.js b/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.js new file mode 100644 index 0000000000..217b9008f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.js @@ -0,0 +1,33 @@ +/// 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: "15.10.6", + +path: "TestCases/chapter15/15.10/15.10.6/15.10.6.js", + +description: "RegExp.prototype is itself a RegExp", + +test: function testcase() { + var s = Object.prototype.toString.call(RegExp.prototype); + return s === '[object RegExp]'; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js new file mode 100644 index 0000000000..a22be95b43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js @@ -0,0 +1,32 @@ +/// 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: "15.10.7.1-1", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js", + +description: "RegExp.prototype.source is of type String", + +test: function testcase() { + return (typeof(RegExp.prototype.source)) === 'string'; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-2.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-2.js new file mode 100644 index 0000000000..65682fc39a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-2.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: "15.10.7.1-2", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-2.js", + +description: "RegExp.prototype.source is a data property with default attribute values (false)", + +test: function testcase() { + var d = Object.getOwnPropertyDescriptor(RegExp.prototype, 'source'); + + if (d.writable === false && + d.enumerable === false && + d.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js new file mode 100644 index 0000000000..d9b8f547ab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js @@ -0,0 +1,32 @@ +/// 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: "15.10.7.2-1", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js", + +description: "RegExp.prototype.global is of type Boolean", + +test: function testcase() { + return (typeof(RegExp.prototype.global)) === 'boolean'; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-2.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-2.js new file mode 100644 index 0000000000..1d1dbf8573 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-2.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: "15.10.7.2-2", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-2.js", + +description: "RegExp.prototype.global is a data property with default attribute values (false)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'global'); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js new file mode 100644 index 0000000000..68a55028d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js @@ -0,0 +1,32 @@ +/// 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: "15.10.7.3-1", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js", + +description: "RegExp.prototype.ignoreCase is of type Boolean", + +test: function testcase() { + return (typeof(RegExp.prototype.ignoreCase)) === 'boolean'; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-2.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-2.js new file mode 100644 index 0000000000..aaff82f160 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-2.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: "15.10.7.3-2", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-2.js", + +description: "RegExp.prototype.ignoreCase is a data property with default attribute values (false)", + +test: function testcase() { + var d = Object.getOwnPropertyDescriptor(RegExp.prototype, 'ignoreCase'); + + if (d.writable === false && + d.enumerable === false && + d.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js new file mode 100644 index 0000000000..50cd999c40 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js @@ -0,0 +1,32 @@ +/// 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: "15.10.7.4-1", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js", + +description: "RegExp.prototype.multiline is of type Boolean", + +test: function testcase() { + return (typeof(RegExp.prototype.multiline)) === 'boolean'; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-2.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-2.js new file mode 100644 index 0000000000..21f7089387 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-2.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: "15.10.7.4-2", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-2.js", + +description: "RegExp.prototype.multiline is a data property with default attribute values (false)", + +test: function testcase() { + var d = Object.getOwnPropertyDescriptor(RegExp.prototype, 'multiline'); + + if (d.writable === false && + d.enumerable === false && + d.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js new file mode 100644 index 0000000000..5a92449045 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js @@ -0,0 +1,32 @@ +/// 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: "15.10.7.5-1", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js", + +description: "RegExp.prototype.lastIndex is of type Number", + +test: function testcase() { + return (typeof(RegExp.prototype.lastIndex)) === 'number'; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-2.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-2.js new file mode 100644 index 0000000000..7815a93351 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-2.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: "15.10.7.5-2", + +path: "TestCases/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-2.js", + +description: "RegExp.prototype.lastIndex is a data property with specified attribute values", + +test: function testcase() { + var d = Object.getOwnPropertyDescriptor(RegExp.prototype, 'lastIndex'); + + if (d.writable === true && + d.enumerable === false && + d.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.11/15.11-1.js b/test/suite/ietestcenter/chapter15/15.11/15.11-1.js new file mode 100644 index 0000000000..c304459ba5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.11/15.11-1.js @@ -0,0 +1,36 @@ +/// 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: "15.11-1", + + path: "TestCases/chapter15/15.11/15.11-1.js", + + description: "Error - ConversionError has been removed from IE9 standard mode", + + test: function testcase() { + return typeof ConversionError === "undefined"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.11/15.11-2.js b/test/suite/ietestcenter/chapter15/15.11/15.11-2.js new file mode 100644 index 0000000000..4e4cf2001d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.11/15.11-2.js @@ -0,0 +1,36 @@ +/// 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: "15.11-2", + + path: "TestCases/chapter15/15.11/15.11-2.js", + + description: "Error - RegExpError has been removed from IE9 standard mode", + + test: function testcase() { + return typeof RegExpError === "undefined"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-10-1.js b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-10-1.js new file mode 100644 index 0000000000..2bc6367333 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-10-1.js @@ -0,0 +1,38 @@ +/// 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: "15.11.4.4-10-1", + + path: "TestCases/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-10-1.js", + + description: "Error.prototype.toString return the result of concatenating 'name', ':', a single space character, and 'msg' when 'name' and 'msg' are non-empty string", + + test: function testcase() { + var errObj = new Error("ErrorMessage"); + errObj.name = "ErrorName"; + return errObj.toString() === "ErrorName: ErrorMessage"; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-6-1.js b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-6-1.js new file mode 100644 index 0000000000..768e78ba9f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-6-1.js @@ -0,0 +1,37 @@ +/// 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: "15.11.4.4-6-1", + + path: "TestCases/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-6-1.js", + + description: "Error.prototype.toString - 'Error' is returned when 'name' is absent and empty string is returned when 'msg' is undefined", + + test: function testcase() { + var errObj = new Error(); + return errObj.toString() === "Error"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-6-2.js b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-6-2.js new file mode 100644 index 0000000000..82fcc1d170 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-6-2.js @@ -0,0 +1,37 @@ +/// 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: "15.11.4.4-6-2", + + path: "TestCases/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-6-2.js", + + description: "Error.prototype.toString - 'Error' is returned when 'name' is absent and value of 'msg' is returned when 'msg' is non-empty string", + + test: function testcase() { + var errObj = new Error("ErrorMessage"); + return errObj.toString() === "Error: ErrorMessage"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-1.js b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-1.js new file mode 100644 index 0000000000..d85ae2f7a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-1.js @@ -0,0 +1,38 @@ +/// 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: "15.11.4.4-8-1", + + path: "TestCases/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-1.js", + + description: "Error.prototype.toString return the value of 'msg' when 'name' is empty string and 'msg' isn't undefined", + + test: function testcase() { + var errObj = new Error("ErrorMessage"); + errObj.name = ""; + return errObj.toString() === "ErrorMessage"; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-2.js b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-2.js new file mode 100644 index 0000000000..2049612d2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-2.js @@ -0,0 +1,38 @@ +/// 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: "15.11.4.4-8-2", + + path: "TestCases/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-8-2.js", + + description: "Error.prototype.toString return empty string when 'name' is empty string and 'msg' is undefined", + + test: function testcase() { + var errObj = new Error(); + errObj.name = ""; + return errObj.toString() === ""; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-9-1.js b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-9-1.js new file mode 100644 index 0000000000..1345f2ec93 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-9-1.js @@ -0,0 +1,38 @@ +/// 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: "15.11.4.4-9-1", + + path: "TestCases/chapter15/15.11/15.11.4/15.11.4.4/15.11.4.4-9-1.js", + + description: "Error.prototype.toString return 'name' when 'name' is non-empty string and 'msg' is empty string", + + test: function testcase() { + var errObj = new Error(); + errObj.name = "ErrorName"; + return errObj.toString() === "ErrorName"; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12-0-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12-0-1.js new file mode 100644 index 0000000000..37a3960f0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12-0-1.js @@ -0,0 +1,45 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The name JSON must be bound to an object. +4.2 calls out JSON as one of the built-in objects. +*/ + + +ES5Harness.registerTest( { +id: "15.12-0-1", + +path: "TestCases/chapter15/15.12/15.12-0-1.js", + +description: "JSON must be a built-in object", + +test: function testcase() { + var o = JSON; + if (typeof(o) === "object") { + return true; + } + }, + + precondition: function preq () { + return JSON !== undefined; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12-0-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12-0-2.js new file mode 100644 index 0000000000..8cc03e4332 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12-0-2.js @@ -0,0 +1,51 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The name JSON must be bound to an object, and must not support [[Construct]]. +step 4 in 11.2.2 should throw a TypeError exception. +*/ + + +ES5Harness.registerTest( { +id: "15.12-0-2", + +path: "TestCases/chapter15/15.12/15.12-0-2.js", + +description: "JSON must not support the [[Construct]] method", + +test: function testcase() { + var o = JSON; + + try { + var j = new JSON(); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + + precondition: function preq () { + return JSON !== undefined; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12-0-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12-0-3.js new file mode 100644 index 0000000000..97a7d6014b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12-0-3.js @@ -0,0 +1,51 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The name JSON must be bound to an object, and must not support [[Call]]. +step 5 in 11.2.3 should throw a TypeError exception. +*/ + + +ES5Harness.registerTest( { +id: "15.12-0-3", + +path: "TestCases/chapter15/15.12/15.12-0-3.js", + +description: "JSON must not support the [[Call]] method", + +test: function testcase() { + var o = JSON; + + try { + var j = JSON(); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + + precondition: function preq () { + return JSON !== undefined; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12-0-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12-0-4.js new file mode 100644 index 0000000000..da6ce9e07d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12-0-4.js @@ -0,0 +1,52 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The last paragraph in section 15 says "every other property described +in this section has the attribute {... [[Enumerable]] : false ...} +unless otherwise specified. This default applies to the properties on +JSON, and we should not be able to enumerate them. +*/ + + +ES5Harness.registerTest( { +id: "15.12-0-4", + +path: "TestCases/chapter15/15.12/15.12-0-4.js", + +description: "JSON object's properties must be non enumerable", + +test: function testcase() { + var o = JSON; + var i = 0; + for (var p in o) { + i++; + } + + if (i === 0) { + return true; + } + } , + + precondition: function preq () { + return JSON !== undefined; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-1.js new file mode 100644 index 0000000000..86a02c6f5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-1.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: "15.12.1.1-0-1", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-1.js", + +description: "The JSON lexical grammar treats whitespace as a token seperator", + +test: function testcase() { + + try { + JSON.parse('12\t\r\n 34'); // should produce a syntax error as whitespace results in two tokens + } + catch (e) { + if (e.name === 'SyntaxError') return true; + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse('1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-2.js new file mode 100644 index 0000000000..1689a18a75 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-2.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: "15.12.1.1-0-2", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-2.js", + +description: " is not valid JSON whitespace as specified by the production JSONWhitespace.", + +test: function testcase() { + + try { + JSON.parse('\u000b1234'); // should produce a syntax error + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse(' 1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-3.js new file mode 100644 index 0000000000..2f152c27a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-3.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: "15.12.1.1-0-3", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-3.js", + +description: " is not valid JSON whitespace as specified by the production JSONWhitespace.", + +test: function testcase() { + + try { + JSON.parse('\u000c1234'); // should produce a syntax error + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse(' 1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-4.js new file mode 100644 index 0000000000..77c2f57111 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-4.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: "15.12.1.1-0-4", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-4.js", + +description: " is not valid JSON whitespace as specified by the production JSONWhitespace.", + +test: function testcase() { + + try { + JSON.parse('\u00a01234'); // should produce a syntax error + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse(' 1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-5.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-5.js new file mode 100644 index 0000000000..7aa872e839 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-5.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: "15.12.1.1-0-5", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-5.js", + +description: " is not valid JSON whitespace as specified by the production JSONWhitespace.", + +test: function testcase() { + + try { + JSON.parse('\u200b1234'); // should produce a syntax error + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse(' 1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-6.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-6.js new file mode 100644 index 0000000000..3f76186e58 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-6.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: "15.12.1.1-0-6", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-6.js", + +description: " is not valid JSON whitespace as specified by the production JSONWhitespace.", + +test: function testcase() { + + try { + JSON.parse('\ufeff1234'); // should produce a syntax error a + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse(' 1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-7.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-7.js new file mode 100644 index 0000000000..b97675f453 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-7.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: "15.12.1.1-0-7", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-7.js", + +description: "other category z spaces are not valid JSON whitespace as specified by the production JSONWhitespace.", + +test: function testcase() { + + try { + // the following should produce a syntax error + JSON.parse('\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u30001234'); + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse(' 1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-8.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-8.js new file mode 100644 index 0000000000..5ebf10b65e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-8.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: "15.12.1.1-0-8", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-8.js", + +description: "U+2028 and U+2029 are not valid JSON whitespace as specified by the production JSONWhitespace.", + +test: function testcase() { + + try { + JSON.parse('\u2028\u20291234'); // should produce a syntax error + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse(' 1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-9.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-9.js new file mode 100644 index 0000000000..96757e9ead --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-0-9.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: "15.12.1.1-0-9", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-0-9.js", + +description: "Whitespace characters can appear before/after any JSONtoken", + +test: function testcase() { + + JSON.parse('\t\r \n{\t\r \n'+ + '"property"\t\r \n:\t\r \n{\t\r \n}\t\r \n,\t\r \n' + + '"prop2"\t\r \n:\t\r \n'+ + '[\t\r \ntrue\t\r \n,\t\r \nnull\t\r \n,123.456\t\r \n]'+ + '\t\r \n}\t\r \n'); // should JOSN parse without error + return true; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse('1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-1.js new file mode 100644 index 0000000000..27b029232b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-1.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: "15.12.1.1-g1-1", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g1-1.js", + +description: "The JSON lexical grammar treats as a whitespace character", + +test: function testcase() { + if (JSON.parse('\t1234')!==1234) return false; // should be ignored + try { + JSON.parse('12\t34'); // should produce a syntax error as whitespace results in two tokens + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse('1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-2.js new file mode 100644 index 0000000000..3b6f3775a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-2.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: "15.12.1.1-g1-2", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g1-2.js", + +description: "The JSON lexical grammar treats as a whitespace character", + +test: function testcase() { + if (JSON.parse('\r1234')!==1234) return false; // should be ignored + try { + JSON.parse('12\r34'); // should produce a syntax error as whitespace results in two tokens + } + catch (e) { + if (e.name === 'SyntaxError') return true; + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse('1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-3.js new file mode 100644 index 0000000000..15098dac90 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-3.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: "15.12.1.1-g1-3", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g1-3.js", + +description: "The JSON lexical grammar treats as a whitespace character", + +test: function testcase() { + if (JSON.parse('\n1234')!==1234) return false; // should be ignored + try { + JSON.parse('12\n34'); // should produce a syntax error as whitespace results in two tokens + } + catch (e) { + if (e.name === 'SyntaxError') return true; + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse('1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-4.js new file mode 100644 index 0000000000..71259b3523 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g1-4.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: "15.12.1.1-g1-4", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g1-4.js", + +description: "The JSON lexical grammar treats as a whitespace character", + +test: function testcase() { + if (JSON.parse(' 1234')!=1234) return false; // should be ignored + try { + JSON.parse('12 34'); // should produce a syntax error as whitespace results in two tokens + } + catch (e) { + if (e.name === 'SyntaxError') return true; + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('1234')===1234; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-1.js new file mode 100644 index 0000000000..85ca8b3b1b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-1.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g2-1", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g2-1.js", + +description: "JSONStrings can be written using double quotes", + +test: function testcase() { + return JSON.parse('"abc"')==="abc"; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) ; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-2.js new file mode 100644 index 0000000000..3d90176f24 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-2.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: "15.12.1.1-g2-2", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g2-2.js", + +description: "A JSONString may not be delimited by single quotes ", + +test: function testcase() { + try { + if (JSON.parse("'abc'") ==='abc') return false; + } + catch (e) { + return true; + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-3.js new file mode 100644 index 0000000000..80d2111d8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-3.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: "15.12.1.1-g2-3", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g2-3.js", + +description: "A JSONString may not be delimited by Uncode escaped quotes ", + +test: function testcase() { + try { + if (JSON.parse("\\u0022abc\\u0022") ==='abc') return false; + } + catch (e) { + return true; + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-4.js new file mode 100644 index 0000000000..ea82bdb10a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-4.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: "15.12.1.1-g2-4", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g2-4.js", + +description: "A JSONString must both begin and end with double quotes", + +test: function testcase() { + try { + if (JSON.parse('"ab'+"c'") ==='abc') return false; + } + catch (e) { + return true; + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-5.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-5.js new file mode 100644 index 0000000000..877ba3ebf9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g2-5.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g2-5", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g2-5.js", + +description: "A JSONStrings can contain no JSONStringCharacters (Empty JSONStrings)", + +test: function testcase() { + return JSON.parse('""')===""; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse) && JSON.parse('"1234"')==='1234'; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-1.js new file mode 100644 index 0000000000..b5ee9280b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-1.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: "15.12.1.1-g4-1", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g4-1.js", + +description: "The JSON lexical grammar does not allow a JSONStringCharacter to be any of the Unicode characters U+0000 thru U+0007", + +test: function testcase() { + try { + JSON.parse('"\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007"'); // invalid string characters should produce a syntax error + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-2.js new file mode 100644 index 0000000000..a3279099a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-2.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: "15.12.1.1-g4-2", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g4-2.js", + +description: "The JSON lexical grammar does not allow a JSONStringCharacter to be any of the Unicode characters U+0008 thru U+000F", + +test: function testcase() { + try { + JSON.parse('"\u0008\u0009\u000a\u000b\u000c\u000d\u000e\u000f"'); // invalid string characters should produce a syntax error + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-3.js new file mode 100644 index 0000000000..181d5623e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-3.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: "15.12.1.1-g4-3", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g4-3.js", + +description: "The JSON lexical grammar does not allow a JSONStringCharacter to be any of the Unicode characters U+0010 thru U+0017", + +test: function testcase() { + try { + JSON.parse('"\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017"'); // invalid string characters should produce a syntax error + } + catch (e) { + return true; // treat any exception as a pass, other tests ensure that JSON.parse throws SyntaxError exceptions + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-4.js new file mode 100644 index 0000000000..aa7a67d234 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g4-4.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: "15.12.1.1-g4-4", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g4-4.js", + +description: "The JSON lexical grammar does not allow a JSONStringCharacter to be any of the Unicode characters U+0018 thru U+001F", + +test: function testcase() { + try { + JSON.parse('"\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f"'); // invalid string characters should produce a syntax error + } + catch (e) { + if (e.name === 'SyntaxError') return true; + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-1.js new file mode 100644 index 0000000000..f175bc24f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-1.js @@ -0,0 +1,36 @@ + /// 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: "15.12.1.1-g5-1", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g5-1.js", + +description: "The JSON lexical grammar allows Unicode escape sequences in a JSONString", + +test: function testcase() { + return JSON.parse('"\\u0058"')==='X'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& '\u0058'==='X' && JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-2.js new file mode 100644 index 0000000000..8bb27a3623 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-2.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: "15.12.1.1-g5-2", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g5-2.js", + +description: "A JSONStringCharacter UnicodeEscape may not have fewer than 4 hex characters", + +test: function testcase() { + try { + JSON.parse('"\\u005"') + } + catch (e) { + return e.name==='SyntaxError' + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& '\u0058'==='X' && JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-3.js new file mode 100644 index 0000000000..0087e2d284 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g5-3.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: "15.12.1.1-g5-3", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g5-3.js", + +description: "A JSONStringCharacter UnicodeEscape may not include any non=hex characters", + +test: function testcase() { + try { + JSON.parse('"\\u0X50"') + } + catch (e) { + return e.name==='SyntaxError' + } + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& '\u0058'==='X' && JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-1.js new file mode 100644 index 0000000000..5ff49b40e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-1.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g6-1", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g6-1.js", + +description: "The JSON lexical grammer allows '/' as a JSONEscapeCharacter after '\' in a JSONString", + +test: function testcase() { + return JSON.parse('"\\/"')==='/'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-2.js new file mode 100644 index 0000000000..78e9c2696c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-2.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g6-2", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g6-2.js", + +description: "The JSON lexical grammer allows '\' as a JSONEscapeCharacter after '\' in a JSONString", + +test: function testcase() { + return JSON.parse('"\\\\"')==='\\'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-3.js new file mode 100644 index 0000000000..fd038d1c46 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-3.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g6-3", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g6-3.js", + +description: "The JSON lexical grammer allows 'b' as a JSONEscapeCharacter after '\' in a JSONString", + +test: function testcase() { + return JSON.parse('"\\b"')==='\b'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-4.js new file mode 100644 index 0000000000..6be18c47b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-4.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g6-4", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g6-4.js", + +description: "The JSON lexical grammer allows 'f' as a JSONEscapeCharacter after '\' in a JSONString", + +test: function testcase() { + return JSON.parse('"\\f"')==='\f'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-5.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-5.js new file mode 100644 index 0000000000..55366b5ca6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-5.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g6-5", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g6-5.js", + +description: "The JSON lexical grammer allows 'n' as a JSONEscapeCharacter after '\' in a JSONString", + +test: function testcase() { + return JSON.parse('"\\n"')==='\n'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-6.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-6.js new file mode 100644 index 0000000000..e4e1982cbd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-6.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g6-6", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g6-6.js", + +description: "The JSON lexical grammer allows 'r' as a JSONEscapeCharacter after '\' in a JSONString", + +test: function testcase() { + return JSON.parse('"\\r"')==='\r'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-7.js b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-7.js new file mode 100644 index 0000000000..431d4dd0c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.1/15.12.1.1/15.12.1.1-g6-7.js @@ -0,0 +1,36 @@ +/// 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: "15.12.1.1-g6-7", + +path: "TestCases/chapter15/15.12/15.12.1/25.12.1.1/15.12.1.1-g6-7.js", + +description: "The JSON lexical grammer allows 't' as a JSONEscapeCharacter after '\' in a JSONString", + +test: function testcase() { + return JSON.parse('"\\t"')==='\t'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.parse)&& JSON.parse('"1234"')==="1234"; + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-1.js new file mode 100644 index 0000000000..7e95960324 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-1.js @@ -0,0 +1,56 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The name JSON must be bound to an object. + +Section 15 says that every built-in Function object described in this +section — whether as a constructor, an ordinary function, or both — has +a length property whose value is an integer. Unless otherwise specified, +this value is equal to the largest number of named arguments shown in +the section headings for the function description, including optional +parameters. + +This default applies to JSON.parse, and it must exist as a function +taking 2 parameters. +*/ + + +ES5Harness.registerTest( { +id: "15.12.2-0-1", + +path: "TestCases/chapter15/15.12/15.12.2/15.12.2-0-1.js", + +description: "JSON.parse must exist as a function", + +test: function testcase() { + var f = JSON.parse; + + if (typeof(f) === "function") { + return true; + } + }, + + precondition: function preq () { + return JSON !== undefined; + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-2.js new file mode 100644 index 0000000000..e7f9aa527b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-2.js @@ -0,0 +1,56 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The name JSON must be bound to an object. + +Section 15 says that every built-in Function object described in this +section — whether as a constructor, an ordinary function, or both — has +a length property whose value is an integer. Unless otherwise specified, +this value is equal to the largest number of named arguments shown in +the section headings for the function description, including optional +parameters. + +This default applies to JSON.parse, and it must exist as a function +taking 2 parameters. +*/ + + +ES5Harness.registerTest( { +id: "15.12.2-0-2", + +path: "TestCases/chapter15/15.12/15.12.2/15.12.2-0-2.js", + +description: "JSON.parse must exist as a function taking 2 parameters", + +test: function testcase() { + var f = JSON.parse; + + if (typeof(f) === "function" && f.length === 2) { + return true; + } + }, + + precondition: function preq () { + return JSON !== undefined; + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-3.js new file mode 100644 index 0000000000..98caca9f5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-0-3.js @@ -0,0 +1,45 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The initial value of [[Configurable]] on JSON is true. This means we +should be able to delete (8.6.2.5) the stringify and parse properties. +*/ + + +ES5Harness.registerTest( { +id: "15.12.2-0-3", + +path: "TestCases/chapter15/15.12/15.12.2/15.12.2-0-3.js", + +description: "JSON.parse must be deletable (configurable)", + +test: function testcase() { + var o = JSON; + var desc = Object.getOwnPropertyDescriptor(o, "parse"); + return desc.configurable === true; + }, + + precondition: function preq () { + return typeof JSON != "undefined" && fnExists(Object.getOwnPropertyDescriptor) + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-1.js new file mode 100644 index 0000000000..a48da25bb8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-1.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-1", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-1.js", + + description: "JSON.parse - parsing an object where property name is a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{ ' + nullChars[index] + ' : "John" } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-10.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-10.js new file mode 100644 index 0000000000..57fba13526 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-10.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-10", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-10.js", + + description: "JSON.parse - parsing an object where property value middles with a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{ "name" : ' + "Jo" + nullChars[index] + "hn" + ' } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-2.js new file mode 100644 index 0000000000..dc3406ba4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-2.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-2", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-2.js", + + description: "JSON.parse - parsing an object where property name starts with a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{ ' + nullChars[index] + "name" + ' : "John" } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-3.js new file mode 100644 index 0000000000..44b6408c86 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-3.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-3", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-3.js", + + description: "JSON.parse - parsing an object where property name ends with a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{' + "name" + nullChars[index] + ' : "John" } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-4.js new file mode 100644 index 0000000000..067a1c45cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-4.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-4", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-4.js", + + description: "JSON.parse - parsing an object where property name starts and ends with a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{' + nullChars[index] + "name" + nullChars[index] + ' : "John" } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-5.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-5.js new file mode 100644 index 0000000000..65e96cca98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-5.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-5", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-5.js", + + description: "JSON.parse - parsing an object where property name middles with a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{ ' + "na" + nullChars[index] + "me" + ' : "John" } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-6.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-6.js new file mode 100644 index 0000000000..f026a8d19d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-6.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-6", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-6.js", + + description: "JSON.parse - parsing an object where property value is a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{ "name" : ' + nullChars[index] + ' } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-7.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-7.js new file mode 100644 index 0000000000..38297c67f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-7.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-7", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-7.js", + + description: "JSON.parse - parsing an object where property value starts with a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{ "name" : ' + nullChars[index] + "John" + ' } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-8.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-8.js new file mode 100644 index 0000000000..3f0b664dea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-8.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-8", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-8.js", + + description: "JSON.parse - parsing an object where property value ends with a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{ "name" : ' + "John" + nullChars[index] + ' } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-9.js b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-9.js new file mode 100644 index 0000000000..8eb1aa5290 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.2/15.12.2-2-9.js @@ -0,0 +1,80 @@ +/// 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: "15.12.2-2-9", + + path: "TestCases/chapter15/15.12/15.12.2/15.12.2-2-9.js", + + description: "JSON.parse - parsing an object where property value starts and ends with a null character", + + test: function testcase() { + + var result = true; + + var nullChars = new Array(); + nullChars[0] = '\"\u0000\"'; + nullChars[1] = '\"\u0001\"'; + nullChars[2] = '\"\u0002\"'; + nullChars[3] = '\"\u0003\"'; + nullChars[4] = '\"\u0004\"'; + nullChars[5] = '\"\u0005\"'; + nullChars[6] = '\"\u0006\"'; + nullChars[7] = '\"\u0007\"'; + nullChars[8] = '\"\u0008\"'; + nullChars[9] = '\"\u0009\"'; + nullChars[10] = '\"\u000A\"'; + nullChars[11] = '\"\u000B\"'; + nullChars[12] = '\"\u000C\"'; + nullChars[13] = '\"\u000D\"'; + nullChars[14] = '\"\u000E\"'; + nullChars[15] = '\"\u000F\"'; + nullChars[16] = '\"\u0010\"'; + nullChars[17] = '\"\u0011\"'; + nullChars[18] = '\"\u0012\"'; + nullChars[19] = '\"\u0013\"'; + nullChars[20] = '\"\u0014\"'; + nullChars[21] = '\"\u0015\"'; + nullChars[22] = '\"\u0016\"'; + nullChars[23] = '\"\u0017\"'; + nullChars[24] = '\"\u0018\"'; + nullChars[25] = '\"\u0019\"'; + nullChars[26] = '\"\u001A\"'; + nullChars[27] = '\"\u001B\"'; + nullChars[28] = '\"\u001C\"'; + nullChars[29] = '\"\u001D\"'; + nullChars[30] = '\"\u001E\"'; + nullChars[31] = '\"\u001F\"'; + + for (var index in nullChars) { + try { + var obj = JSON.parse('{ "name" : ' + nullChars[index] + "John" + nullChars[index] + ' } '); + result = (result && false); + } catch (e) { + result = (result && (e instanceof SyntaxError)); + } + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-1.js new file mode 100644 index 0000000000..c21cc8b470 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-1.js @@ -0,0 +1,56 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The name JSON must be bound to an object. + +Section 15 says that every built-in Function object described in this +section — whether as a constructor, an ordinary function, or both — has +a length property whose value is an integer. Unless otherwise specified, +this value is equal to the largest number of named arguments shown in +the section headings for the function description, including optional +parameters. + +This default applies to JSON.stringify, and it must exist as a function +taking 3 parameters. +*/ + + +ES5Harness.registerTest( { +id: "15.12.3-0-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-0-1.js", + +description: "JSON.stringify must exist as be a function", + +test: function testcase() { + var f = JSON.stringify; + + if (typeof(f) === "function") { + return true; + } + }, + + precondition: function preq () { + return JSON !== undefined; + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-2.js new file mode 100644 index 0000000000..0915aa4cd6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-2.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. + +/* +This test should be run without any built-ins being added/augmented. +The name JSON must be bound to an object. + +Section 15 says that every built-in Function object described in this +section — whether as a constructor, an ordinary function, or both — has +a length property whose value is an integer. Unless otherwise specified, +this value is equal to the largest number of named arguments shown in +the section headings for the function description, including optional +parameters. + +This default applies to JSON.stringify, and it must exist as a function +taking 3 parameters. +*/ + + +ES5Harness.registerTest( { +id: "15.12.3-0-2", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-0-2.js", + +description: "JSON.stringify must exist as be a function taking 3 parameters", + +test: function testcase() { + var f = JSON.stringify; + + if (typeof(f) === "function" && f.length === 3) { + return true; + } + }, + + precondition: function preq () { + return JSON !== undefined; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-3.js new file mode 100644 index 0000000000..8d65496918 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-0-3.js @@ -0,0 +1,46 @@ +/// 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. + +/* +This test should be run without any built-ins being added/augmented. +The initial value of [[Configurable]] on JSON is true. This means we +should be able to delete (8.6.2.5) the stringify and parse properties. +*/ + + +ES5Harness.registerTest( { +id: "15.12.3-0-3", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-0-3.js", + +description: "JSON.stringify must be deletable (configurable)", + +test: function testcase() { + var o = JSON; + var desc = Object.getOwnPropertyDescriptor(o, "stringify"); + if (desc.configurable === true) { + return true; + } + }, + + precondition: function preq () { + return typeof JSON != "undefined" && fnExists(Object.getOwnPropertyDescriptor) + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-1.js new file mode 100644 index 0000000000..96da2c66c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-1.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-1.js", + +description: "JSON.stringify(undefined) returns undefined", + +test: function testcase() { + return JSON.stringify(undefined) === undefined; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-10.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-10.js new file mode 100644 index 0000000000..ed5a889f46 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-10.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-10", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-10.js", + +description: "A JSON.stringify replacer function applied to a top level scalar value can return undefined.", + +test: function testcase() { + return JSON.stringify(42, function(k, v) { return undefined }) === undefined; + }, + +precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-11.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-11.js new file mode 100644 index 0000000000..a44253f1b6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-11.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-11", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-11.js", + +description: "A JSON.stringify replacer function applied to a top level Object can return undefined.", + +test: function testcase() { + return JSON.stringify({prop:1}, function(k, v) { return undefined }) === undefined; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-12.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-12.js new file mode 100644 index 0000000000..d13a148546 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-12.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-12", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-12.js", + +description: "A JSON.stringify replacer function applied to a top level scalar can return an Array.", + +test: function testcase() { + return JSON.stringify(42, function(k, v) { return v==42 ?[4,2]:v }) === '[4,2]'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-13.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-13.js new file mode 100644 index 0000000000..a493c4ee3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-13.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-13", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-13.js", + +description: "A JSON.stringify replacer function applied to a top level scalar can return an Object.", + +test: function testcase() { + return JSON.stringify(42, function(k, v) { return v==42 ? {forty:2}: v}) === '{"forty":2}'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-14.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-14.js new file mode 100644 index 0000000000..36ddac1fb2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-14.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-14", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-14.js", + +description: "Applying JSON.stringify to a function returns undefined.", + +test: function testcase() { + return JSON.stringify(function() {}) === undefined; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-15.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-15.js new file mode 100644 index 0000000000..110fbb6ba9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-15.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-15", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-15.js", + +description: "Applying JSON.stringify with a replacer function to a function returns the replacer value.", + +test: function testcase() { + return JSON.stringify(function() {}, function(k,v) {return 99}) === '99'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-16.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-16.js new file mode 100644 index 0000000000..195d30edae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-16.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-16", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-16.js", + + description: "JSON.stringify - stringifying an object where property name is the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F": "John" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-17.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-17.js new file mode 100644 index 0000000000..4598041cba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-17.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-17", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-17.js", + + description: "JSON.stringify - stringifying an object where property name starts with the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001Fname": "John" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-18.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-18.js new file mode 100644 index 0000000000..49862d3753 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-18.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-18", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-18.js", + + description: "JSON.stringify - stringifying an object where property name ends with the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "name\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F": "John" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-19.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-19.js new file mode 100644 index 0000000000..4416650e63 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-19.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-19", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-19.js", + + description: "JSON.stringify - stringifying an object where property name starts and ends with the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001Fname\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F": "John" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1 && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-2.js new file mode 100644 index 0000000000..ff41a7da6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-2.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-2", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-2.js", + +description: "A JSON.stringify replacer function works is applied to a top level undefined value.", + +test: function testcase() { + return JSON.stringify(undefined, function(k, v) { return "replacement" }) === '"replacement"'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-20.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-20.js new file mode 100644 index 0000000000..69a89f98bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-20.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-20", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-20.js", + + description: "JSON.stringify - stringifying an object where property name middles with the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "na\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001Fme": "John" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-21.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-21.js new file mode 100644 index 0000000000..0b907cc47d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-21.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-21", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-21.js", + + description: "JSON.stringify - stringifying an object where property value is the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "name": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-22.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-22.js new file mode 100644 index 0000000000..bdd9fc88cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-22.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-22", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-22.js", + + description: "JSON.stringify - stringifying an object where property value starts with the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "name": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001FJohn" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-23.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-23.js new file mode 100644 index 0000000000..5dd5f377da --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-23.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-23", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-23.js", + + description: "JSON.stringify - stringifying an object where property value ends with the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "name": "John\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-24.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-24.js new file mode 100644 index 0000000000..c748bfac68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-24.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-24", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-24.js", + + description: "JSON.stringify - stringifying an object where property value starts and ends with the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "name": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001FJohn\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1 && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-25.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-25.js new file mode 100644 index 0000000000..dc3774ab03 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-25.js @@ -0,0 +1,77 @@ +/// 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: "15.12.3-11-25", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-25.js", + + description: "JSON.stringify - stringifying an object where property value middles with the union of all null character (The abstract operation Quote(value) step 2.c)", + + test: function testcase() { + + var result = true; + + var expectedNullChars = new Array(); + expectedNullChars[0] = "\\u0000"; + expectedNullChars[1] = "\\u0001"; + expectedNullChars[2] = "\\u0002"; + expectedNullChars[3] = "\\u0003"; + expectedNullChars[4] = "\\u0004"; + expectedNullChars[5] = "\\u0005"; + expectedNullChars[6] = "\\u0006"; + expectedNullChars[7] = "\\u0007"; + expectedNullChars[8] = "\\b"; + expectedNullChars[9] = "\\t"; + expectedNullChars[10] = "\\n"; + expectedNullChars[11] = "\\u000b"; + expectedNullChars[12] = "\\f"; + expectedNullChars[13] = "\\r"; + expectedNullChars[14] = "\\u000e"; + expectedNullChars[15] = "\\u000f"; + expectedNullChars[16] = "\\u0010"; + expectedNullChars[17] = "\\u0011"; + expectedNullChars[18] = "\\u0012"; + expectedNullChars[19] = "\\u0013"; + expectedNullChars[20] = "\\u0014"; + expectedNullChars[21] = "\\u0015"; + expectedNullChars[22] = "\\u0016"; + expectedNullChars[23] = "\\u0017"; + expectedNullChars[24] = "\\u0018"; + expectedNullChars[25] = "\\u0019"; + expectedNullChars[26] = "\\u001a"; + expectedNullChars[27] = "\\u001b"; + expectedNullChars[28] = "\\u001c"; + expectedNullChars[29] = "\\u001d"; + expectedNullChars[30] = "\\u001e"; + expectedNullChars[31] = "\\u001f"; + + for (var index in expectedNullChars) { + + var str = JSON.stringify({ "name": "Jo\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001Fhn" }); + result = (result && str.indexOf(expectedNullChars[index]) !== -1 && str.indexOf(expectedNullChars[index]) !== -1); + } + return result; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-26.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-26.js new file mode 100644 index 0000000000..858ca7f969 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-26.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: "15.12.3-11-26", + + path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-26.js", + + description: "JSON.stringify - the last element of the concatenation is ']' (The abstract operation JA(value) step 10.b.iii)", + + test: function testcase() { + var arrObj = []; + arrObj[0] = "a"; + arrObj[1] = "b"; + arrObj[2] = "c"; + + var jsonText = JSON.stringify(arrObj, undefined, "").toString(); + return jsonText.substr(jsonText.length - 1, 1) === "]"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-3.js new file mode 100644 index 0000000000..8d6a55f85f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-3.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-3", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-3.js", + +description: "A JSON.stringify correctly works on top level string values.", + +test: function testcase() { + return JSON.stringify("a string") === '"a string"'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-4.js new file mode 100644 index 0000000000..b20b27d413 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-4.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-4", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-4.js", + +description: "JSON.stringify correctly works on top level Number values.", + +test: function testcase() { + return JSON.stringify(123) === '123'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-5.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-5.js new file mode 100644 index 0000000000..aedd2514e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-5.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-5", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-5.js", + +description: "JSON.stringify correctly works on top level Boolean values.", + +test: function testcase() { + return JSON.stringify(true) === 'true'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-6.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-6.js new file mode 100644 index 0000000000..b9f664e5c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-6.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-6", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-6.js", + +description: "JSON.stringify correctly works on top level null values.", + +test: function testcase() { + return JSON.stringify(null) === 'null'; + }, + + precodition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-7.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-7.js new file mode 100644 index 0000000000..3122ce3639 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-7.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-7", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-7.js", + +description: "JSON.stringify correctly works on top level Number objects.", + +test: function testcase() { + return JSON.stringify(new Number(42)) === '42'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-8.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-8.js new file mode 100644 index 0000000000..6959cd4400 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-8.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-8", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-8.js", + +description: "JSON.stringify correctly works on top level String objects.", + +test: function testcase() { + return JSON.stringify(new String('wrappered')) === '"wrappered"'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-9.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-9.js new file mode 100644 index 0000000000..331e25d499 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-11-9.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3-11-9", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-11-9.js", + +description: "JSON.stringify correctly works on top level Boolean objects.", + +test: function testcase() { + return JSON.stringify(new Boolean(false)) === 'false'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-4-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-4-1.js new file mode 100644 index 0000000000..3ca39f05ce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-4-1.js @@ -0,0 +1,39 @@ +/// 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: "15.12.3-4-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-4-1.js", + +description: "JSON.stringify ignores replacer aruguments that are not functions or arrays..", + +test: function testcase() { + try { + return JSON.stringify([42],{})=== '[42]'; + } + catch (e) {return false} + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-5-a-i-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-5-a-i-1.js new file mode 100644 index 0000000000..df0f0b2e82 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-5-a-i-1.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-5-a-i-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-5-a-i-1.js", + +description: "JSON.stringify converts Number wrapper object space aruguments to Number values", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj,null, new Number(5))=== JSON.stringify(obj,null, 5); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-5-b-i-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-5-b-i-1.js new file mode 100644 index 0000000000..a5ddd965ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-5-b-i-1.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-5-b-i-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-5-b-i-1.js", + +description: "JSON.stringify converts String wrapper object space aruguments to String values", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj,null, new String('xxx'))=== JSON.stringify(obj,null, 'xxx'); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-a-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-a-1.js new file mode 100644 index 0000000000..21f0feed0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-a-1.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-6-a-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-6-a-1.js", + +description: "JSON.stringify treats numeric space arguments greater than 10 the same as a space argument of 10.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj,null, 10)=== JSON.stringify(obj,null, 100); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-a-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-a-2.js new file mode 100644 index 0000000000..774117cb01 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-a-2.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-6-a-2", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-6-a-2.js", + +description: "JSON.stringify truccates non-integer numeric space arguments to their integer part.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj,null, 5.99999)=== JSON.stringify(obj,null, 5); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-1.js new file mode 100644 index 0000000000..ae1cdb112c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-1.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-6-b-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-6-b-1.js", + +description: "JSON.stringify treats numeric space arguments less than 1 (0.999999)the same as emptry string space argument.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj,null, 0.999999)=== JSON.stringify(obj); /* emptry string should be same as no space arg */ + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-2.js new file mode 100644 index 0000000000..ace11de6e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-2.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-6-b-2", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-6-b-2.js", + +description: "JSON.stringify treats numeric space arguments less than 1 (0)the same as emptry string space argument.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj,null, 0)=== JSON.stringify(obj); /* emptry string should be same as no space arg */ + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-3.js new file mode 100644 index 0000000000..3d439a1fb0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-3.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-6-b-3", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-6-b-3.js", + +description: "JSON.stringify treats numeric space arguments less than 1 (-5) the same as emptry string space argument.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj,null, -5)=== JSON.stringify(obj); /* emptry string should be same as no space arg */ + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-4.js new file mode 100644 index 0000000000..8e7940c4fb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-6-b-4.js @@ -0,0 +1,39 @@ +/// 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: "15.12.3-6-b-4", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-6-b-4.js", + +description: "JSON.stringify treats numeric space arguments (in the range 1..10) is equivalent to a string of spaces of that length.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + var fiveSpaces = ' '; + // '12345' + return JSON.stringify(obj,null, 5)=== JSON.stringify(obj, null, fiveSpaces); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-7-a-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-7-a-1.js new file mode 100644 index 0000000000..4980617f50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-7-a-1.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-7-a-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-7-a-1.js", + +description: "JSON.stringify only uses the first 10 characters of a string space arguments.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj,null, '0123456789xxxxxxxxx')=== JSON.stringify(obj,null, '0123456789'); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-1.js new file mode 100644 index 0000000000..9c6c9d87aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-1.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-8-a-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-8-a-1.js", + +description: "JSON.stringify treats an empty string space argument the same as a missing space argument.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj)=== JSON.stringify(obj,null, ''); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-2.js new file mode 100644 index 0000000000..6a59d89eb0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-2.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-8-a-2", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-8-a-2.js", + +description: "JSON.stringify treats an Boolean space argument the same as a missing space argument.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj)=== JSON.stringify(obj,null, true); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-3.js new file mode 100644 index 0000000000..c96bcf595a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-3.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-8-a-3", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-8-a-3.js", + +description: "JSON.stringify treats an null space argument the same as a missing space argument.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj)=== JSON.stringify(obj,null, null); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-4.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-4.js new file mode 100644 index 0000000000..41b04a5cac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-4.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-8-a-4", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-8-a-4.js", + +description: "JSON.stringify treats an Boolean wrapper space argument the same as a missing space argument.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj)=== JSON.stringify(obj,null, new Boolean(true)); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-5.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-5.js new file mode 100644 index 0000000000..5a5fb1b7d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3-8-a-5.js @@ -0,0 +1,37 @@ +/// 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: "15.12.3-8-a-5", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3-8-a-5.js", + +description: "JSON.stringify treats non-Number or String object space arguments the same as a missing space argument.", + +test: function testcase() { + var obj = {a1: {b1: [1,2,3,4], b2: {c1: 1, c2: 2}},a2: 'a2'}; + return JSON.stringify(obj)=== JSON.stringify(obj,null, obj); + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-1.js new file mode 100644 index 0000000000..1e5b87316a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-1.js @@ -0,0 +1,40 @@ +/// 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: "15.12.3_2-2-b-i-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-1.js", + +description: "JSON.stringify converts string wrapper objects returned from a toJSON call to literal strings.", + +test: function testcase() { + var obj = { + prop:42, + toJSON: function () {return 'fortytwo objects'} + }; + return JSON.stringify([obj]) === '["fortytwo objects"]'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-2.js new file mode 100644 index 0000000000..cc6d3b84fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-2.js @@ -0,0 +1,40 @@ +/// 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: "15.12.3_2-2-b-i-2", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-2.js", + +description: "JSON.stringify converts Number wrapper objects returned from a toJSON call to literal Number.", + +test: function testcase() { + var obj = { + prop:42, + toJSON: function () {return new Number(42)} + }; + return JSON.stringify([obj]) === '[42]'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-3.js new file mode 100644 index 0000000000..2601e7b7c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-3.js @@ -0,0 +1,40 @@ +/// 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: "15.12.3_2-2-b-i-3", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_2-2-b-i-3.js", + +description: "JSON.stringify converts Boolean wrapper objects returned from a toJSON call to literal Boolean values.", + +test: function testcase() { + var obj = { + prop:42, + toJSON: function () {return new Boolean(true)} + }; + return JSON.stringify([obj]) === '[true]'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-1.js new file mode 100644 index 0000000000..4c8cb4e1a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-1.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3_2-3-a-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_2-3-a-1.js", + +description: "JSON.stringify converts string wrapper objects returned from replacer functions to literal strings.", + +test: function testcase() { + return JSON.stringify([42], function(k,v) {return v===42? new String('fortytwo'):v}) === '["fortytwo"]'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-2.js new file mode 100644 index 0000000000..81c39d5358 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-2.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3_2-3-a-2", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_2-3-a-2.js", + +description: "JSON.stringify converts Number wrapper objects returned from replacer functions to literal numbers.", + +test: function testcase() { + return JSON.stringify([42], function(k,v) {return v===42? new Number(84):v}) === '[84]'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-3.js new file mode 100644 index 0000000000..9a8a4456e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_2-3-a-3.js @@ -0,0 +1,36 @@ +/// 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: "15.12.3_2-3-a-3", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_2-3-a-3.js", + +description: "JSON.stringify converts Boolean wrapper objects returned from replacer functions to literal numbers.", + +test: function testcase() { + return JSON.stringify([42], function(k,v) {return v===42? new Boolean(false):v}) === '[false]'; + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-1.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-1.js new file mode 100644 index 0000000000..bc45ed276b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-1.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: "15.12.3_4-1-1", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_4-1-1.js", + +description: "JSON.stringify a circular object throws a error", + +test: function testcase() { + var obj = {}; + obj.prop = obj; + try { + JSON.stringify(obj); + return false; // should not reach here + } + catch (e) {return true} + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-2.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-2.js new file mode 100644 index 0000000000..c9cd063146 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-2.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: "15.12.3_4-1-2", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_4-1-2.js", + +description: "JSON.stringify a circular object throws a TypeError", + +test: function testcase() { + var obj = {}; + obj.prop = obj; + try { + JSON.stringify(obj); + return false; // should not reach here + } + catch (e) {return e.name==='TypeError'} + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-3.js b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-3.js new file mode 100644 index 0000000000..6fb219738f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.12/15.12.3/15.12.3_4-1-3.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: "15.12.3_4-1-3", + +path: "TestCases/chapter15/15.12/15.12.3/15.12.3_4-1-3.js", + +description: "JSON.stringify a indirectly circular object throws a error", + +test: function testcase() { + var obj = {p1: {p2: {}}}; + obj.p1.p2.prop = obj; + try { + JSON.stringify(obj); + return false; // should not reach here + } + catch (e) {return true} + }, + + precondition: function preq () { + return JSON && fnExists(JSON.stringify); + } +} ); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.1/15.2.3.1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.1/15.2.3.1.js new file mode 100644 index 0000000000..f67f093178 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.1/15.2.3.1.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: "15.2.3.1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.1/15.2.3.1.js", + +description: "Object.prototype is a data property with default attribute values (false)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, 'prototype'); + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-0-1.js new file mode 100644 index 0000000000..0969cf4be9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.10-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-0-1.js", + +description: "Object.preventExtensions must exist as a function", + +test: function testcase() { + var f = Object.preventExtensions; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-0-2.js new file mode 100644 index 0000000000..e6f1a9122d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.10-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-0-2.js", + +description: "Object.preventExtensions must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.preventExtensions.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js new file mode 100644 index 0000000000..4536ed9d3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.10-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-1.js", + + description: "Object.preventExtensions throws TypeError if 'O' is undefined", + + test: function testcase() { + try { + Object.preventExtensions(undefined); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js new file mode 100644 index 0000000000..109d0f53d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.10-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-2.js", + + description: "Object.preventExtensions throws TypeError if 'O' is null", + + test: function testcase() { + try { + Object.preventExtensions(null); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js new file mode 100644 index 0000000000..d4df628bcd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.10-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-3.js", + + description: "Object.preventExtensions throws TypeError if 'O' is a boolean primitive value", + + test: function testcase() { + try { + Object.preventExtensions(true); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js new file mode 100644 index 0000000000..66bef8a25d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.10-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1-4.js", + + description: "Object.preventExtensions throws TypeError if 'O' is a string primitive value", + + test: function testcase() { + try { + Object.preventExtensions("abc"); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.js new file mode 100644 index 0000000000..df8000f9e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.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: "15.2.3.10-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-1.js", + +description: "Object.preventExtensions throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.preventExtensions(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-2-1.js new file mode 100644 index 0000000000..2e56ce4529 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-2-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.10-2-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-2-1.js", + + description: "Object.preventExtensions - repeated calls to preventExtensions have no side effects", + + test: function testcase() { + var obj = {}; + var testResult1 = true; + var testResult2 = true; + + var preCheck = Object.isExtensible(obj); + + Object.preventExtensions(obj); + testResult1 = Object.isExtensible(obj); + Object.preventExtensions(obj); + testResult2 = Object.isExtensible(obj); + + return preCheck && !testResult1 && !testResult2; + + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-2.js new file mode 100644 index 0000000000..18585ed4bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-2.js @@ -0,0 +1,45 @@ +/// 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. + +/* +The effect of preventExtentions must be testable by calling isExtensible +*/ + +ES5Harness.registerTest( { +id: "15.2.3.10-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-2.js", + +description: "Object.preventExtensions returns its arguments after setting its extensible property to false", + +test: function testcase() { + var o = {}; + var o2 = undefined; + + o2 = Object.preventExtensions(o); + if (o2 === o && Object.isExtensible(o2) === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-1.js new file mode 100644 index 0000000000..3288fab2af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.10-3-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-1.js", + + description: "Object.preventExtensions - Object.isExtensible(arg) returns false if arg is the returned object", + + test: function testcase() { + var obj = {}; + var preCheck = Object.isExtensible(obj); + Object.preventExtensions(obj); + + return preCheck && !Object.isExtensible(obj); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-10.js new file mode 100644 index 0000000000..45df845c74 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-10.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: "15.2.3.10-3-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-10.js", + + description: "Object.preventExtensions - indexed properties cannot be added into an Error object", + + test: function testcase() { + var errObj = new Error(); + var preCheck = Object.isExtensible(errObj); + Object.preventExtensions(errObj); + + errObj[0] = 12; + return preCheck && !errObj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-11.js new file mode 100644 index 0000000000..cd8bc0c8cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-11.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.10-3-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-11.js", + + description: "Object.preventExtensions - indexed properties cannot be added into an Arguments object", + + test: function testcase() { + var argObj; + (function () { + argObj = arguments; + }()); + var preCheck = Object.isExtensible(argObj); + Object.preventExtensions(argObj); + + argObj[0] = 12; + return preCheck && !argObj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-12.js new file mode 100644 index 0000000000..89f8388226 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-12.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: "15.2.3.10-3-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-12.js", + + description: "Object.preventExtensions - named properties cannot be added into the returned object", + + test: function testcase() { + var obj = {}; + var preCheck = Object.isExtensible(obj); + Object.preventExtensions(obj); + + obj.exName = 2; + return preCheck && !Object.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-13.js new file mode 100644 index 0000000000..e975c04d55 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-13.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: "15.2.3.10-3-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-13.js", + + description: "Object.preventExtensions - named properties cannot be added into a Function object", + + test: function testcase() { + var funObj = function () { }; + var preCheck = Object.isExtensible(funObj); + Object.preventExtensions(funObj); + + funObj.exName = 2; + return preCheck && !funObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-14.js new file mode 100644 index 0000000000..91625a0f15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-14.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: "15.2.3.10-3-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-14.js", + + description: "Object.preventExtensions - named properties cannot be added into an Array object", + + test: function testcase() { + var arrObj = []; + var preCheck = Object.isExtensible(arrObj); + Object.preventExtensions(arrObj); + + arrObj.exName = 2; + return preCheck && !arrObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-15.js new file mode 100644 index 0000000000..1de6811d28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-15.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: "15.2.3.10-3-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-15.js", + + description: "Object.preventExtensions - named properties cannot be added into a String object", + + test: function testcase() { + var strObj = new String("bbq"); + var preCheck = Object.isExtensible(strObj); + Object.preventExtensions(strObj); + + strObj.exName = 2; + return preCheck && !strObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-16.js new file mode 100644 index 0000000000..a3f2b54b68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-16.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: "15.2.3.10-3-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-16.js", + + description: "Object.preventExtensions - named properties cannot be added into a Boolean object", + + test: function testcase() { + var boolObj = new Boolean(true); + var preCheck = Object.isExtensible(boolObj); + Object.preventExtensions(boolObj); + + boolObj.exName = 2; + return preCheck && !boolObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-17.js new file mode 100644 index 0000000000..0503072618 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-17.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: "15.2.3.10-3-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-17.js", + + description: "Object.preventExtensions - named properties cannot be added into a Number object", + + test: function testcase() { + var numObj = new Number(123); + var preCheck = Object.isExtensible(numObj); + Object.preventExtensions(numObj); + + numObj.exName = 2; + return preCheck && !numObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-18.js new file mode 100644 index 0000000000..fd0e47aac5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-18.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: "15.2.3.10-3-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-18.js", + + description: "Object.preventExtensions - named properties cannot be added into a Date object", + + test: function testcase() { + var dateObj = new Date(); + var preCheck = Object.isExtensible(dateObj); + Object.preventExtensions(dateObj); + + dateObj.exName = 2; + return preCheck && !dateObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-19.js new file mode 100644 index 0000000000..af77195219 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-19.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: "15.2.3.10-3-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-19.js", + + description: "Object.preventExtensions - named properties cannot be added into a RegExp object", + + test: function testcase() { + var regObj = new RegExp(); + var preCheck = Object.isExtensible(regObj); + Object.preventExtensions(regObj); + + regObj.exName = 2; + return preCheck && !regObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-2.js new file mode 100644 index 0000000000..35afaba53b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-2.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: "15.2.3.10-3-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-2.js", + + description: "Object.preventExtensions - indexed properties cannot be added into the returned object", + + test: function testcase() { + + var obj = {}; + var preCheck = Object.isExtensible(obj); + Object.preventExtensions(obj); + + obj[0] = 12; + return preCheck && !obj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-20.js new file mode 100644 index 0000000000..671b2685e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-20.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: "15.2.3.10-3-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-20.js", + + description: "Object.preventExtensions - named properties cannot be added into an Error object", + + test: function testcase() { + var errObj = new Error(); + var preCheck = Object.isExtensible(errObj); + Object.preventExtensions(errObj); + + errObj.exName = 2; + return preCheck && !errObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-21.js new file mode 100644 index 0000000000..338dcbf563 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-21.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.10-3-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-21.js", + + description: "Object.preventExtensions - named properties cannot be added into an Arguments object", + + test: function testcase() { + var argObj; + (function () { + argObj = arguments; + }()); + var preCheck = Object.isExtensible(argObj); + Object.preventExtensions(argObj); + + argObj.exName = 2; + return preCheck && !argObj.hasOwnProperty("exName"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-22.js new file mode 100644 index 0000000000..b17311302a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-22.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: "15.2.3.10-3-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-22.js", + + description: "Object.preventExtensions - properties can still be deleted after extensions have been prevented", + + test: function testcase() { + var obj = { prop: 12 }; + var preCheck = Object.isExtensible(obj); + Object.preventExtensions(obj); + + delete obj.prop; + + return preCheck && !obj.hasOwnProperty("prop"); + + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-23.js new file mode 100644 index 0000000000..f4ea0e0d05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-23.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: "15.2.3.10-3-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-23.js", + + description: "Object.preventExtensions - properties can still be reassigned after extensions have been prevented", + + test: function testcase() { + var obj = { prop: 12 }; + var preCheck = Object.isExtensible(obj); + Object.preventExtensions(obj); + + obj.prop = -1; + + return preCheck && obj.prop === -1; + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-24.js new file mode 100644 index 0000000000..19f64559fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-24.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.10-3-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-24.js", + + description: "Object.preventExtensions - [[Extensible]]: false on a prototype doesn't prevent adding properties to an instance that inherits from that prototype", + + test: function testcase() { + var proto = {}; + var preCheck = Object.isExtensible(proto); + Object.preventExtensions(proto); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + + child.prop = 10; + + return preCheck && child.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-3.js new file mode 100644 index 0000000000..3cb6cb77a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-3.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: "15.2.3.10-3-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-3.js", + + description: "Object.preventExtensions - indexed properties cannot be added into a Function object", + + test: function testcase() { + var funObj = function () { }; + var preCheck = Object.isExtensible(funObj); + Object.preventExtensions(funObj); + + funObj[0] = 12; + return preCheck && !funObj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-4.js new file mode 100644 index 0000000000..bd3566638d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-4.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: "15.2.3.10-3-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-4.js", + + description: "Object.preventExtensions - indexed properties cannot be added into an Array object", + + test: function testcase() { + var arrObj = []; + var preCheck = Object.isExtensible(arrObj); + Object.preventExtensions(arrObj); + + arrObj[0] = 12; + return preCheck && !arrObj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-5-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-5-1.js new file mode 100644 index 0000000000..d4449895ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-5-1.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: "15.2.3.10-3-5-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-5-1.js", + + description: "Object.preventExtensions - indexed properties cannot be added into a String object", + + test: function testcase() { + var strObj = new String("bbq"); + var preCheck = Object.isExtensible(strObj); + Object.preventExtensions(strObj); + + strObj[10] = 12; + return preCheck && !strObj.hasOwnProperty("10"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-5.js new file mode 100644 index 0000000000..82d949c86c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-5.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.10-3-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-5.js", + + description: "Object.preventExtensions - indexed properties cannot be added into a String object", + + test: function testcase() { + var strObj = new String(); + var preCheck = Object.isExtensible(strObj); + Object.preventExtensions(strObj); + try { + Object.defineProperty(strObj, "0", { value: "c" }); + return false; + } catch (e) { + return e instanceof TypeError && preCheck && + !strObj.hasOwnProperty("0") && typeof strObj[0] === "undefined"; + } + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-6.js new file mode 100644 index 0000000000..91b1438596 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-6.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: "15.2.3.10-3-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-6.js", + + description: "Object.preventExtensions - indexed properties cannot be added into a Boolean object", + + test: function testcase() { + var boolObj = new Boolean(true); + var preCheck = Object.isExtensible(boolObj); + Object.preventExtensions(boolObj); + + boolObj[0] = 12; + return preCheck && !boolObj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-7.js new file mode 100644 index 0000000000..84e1b67bb9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-7.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: "15.2.3.10-3-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-7.js", + + description: "Object.preventExtensions - indexed properties cannot be added into a Number object", + + test: function testcase() { + var numObj = new Number(123); + var preCheck = Object.isExtensible(numObj); + Object.preventExtensions(numObj); + + numObj[0] = 12; + return preCheck && !numObj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-8.js new file mode 100644 index 0000000000..4d391fd0d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-8.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: "15.2.3.10-3-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-8.js", + + description: "Object.preventExtensions - indexed properties cannot be added into a Date object", + + test: function testcase() { + var dateObj = new Date(); + var preCheck = Object.isExtensible(dateObj); + Object.preventExtensions(dateObj); + + dateObj[0] = 12; + return preCheck && !dateObj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-9.js new file mode 100644 index 0000000000..c09a4ccc36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-9.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: "15.2.3.10-3-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.10/15.2.3.10-3-9.js", + + description: "Object.preventExtensions - indexed properties cannot be added into a RegExp object", + + test: function testcase() { + var regObj = new RegExp(); + var preCheck = Object.isExtensible(regObj); + Object.preventExtensions(regObj); + + regObj[0] = 12; + return preCheck && !regObj.hasOwnProperty("0"); + }, + + precondition: function prereq() { + return fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-0-1.js new file mode 100644 index 0000000000..6606c1aee6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.11-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-0-1.js", + +description: "Object.isSealed must exist as a function", + +test: function testcase() { + var f = Object.isSealed; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-0-2.js new file mode 100644 index 0000000000..adeb4fa971 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.11-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-0-2.js", + +description: "Object.isSealed must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.isSealed.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.js new file mode 100644 index 0000000000..a370fc17f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.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: "15.2.3.11-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-1.js", + +description: "Object.isSealed throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.isSealed(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-1.js new file mode 100644 index 0000000000..40d6e1fbd1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.11-4-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-1.js", + +description: "Object.isSealed returns false for all built-in objects (Global)", + +test: function testcase() { + // in non-strict mode, 'this' is bound to the global object. + var b = Object.isSealed(this); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-10.js new file mode 100644 index 0000000000..1c6a165ef8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-10.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-10", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-10.js", + +description: "Object.isSealed returns false for all built-in objects (Boolean)", + +test: function testcase() { + var b = Object.isSealed(Boolean); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-11.js new file mode 100644 index 0000000000..59d7d1c186 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-11.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-11", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-11.js", + +description: "Object.isSealed returns false for all built-in objects (Boolean.prototype)", + +test: function testcase() { + var b = Object.isSealed(Boolean.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-12.js new file mode 100644 index 0000000000..f4db29697a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-12.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-12", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-12.js", + +description: "Object.isSealed returns false for all built-in objects (Number)", + +test: function testcase() { + var b = Object.isSealed(Number); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-13.js new file mode 100644 index 0000000000..7a020d2337 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-13.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-13", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-13.js", + +description: "Object.isSealed returns false for all built-in objects (Number.prototype)", + +test: function testcase() { + var b = Object.isSealed(Number.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-14.js new file mode 100644 index 0000000000..63edd712a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-14.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-14", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-14.js", + +description: "Object.isSealed returns false for all built-in objects (Math)", + +test: function testcase() { + var b = Object.isSealed(Math); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-15.js new file mode 100644 index 0000000000..9a25a276b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-15.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-15", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-15.js", + +description: "Object.isSealed returns false for all built-in objects (Date)", + +test: function testcase() { + var b = Object.isSealed(Date); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-16.js new file mode 100644 index 0000000000..76a5859ae1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-16.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-16", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-16.js", + +description: "Object.isSealed returns false for all built-in objects (Date.prototype)", + +test: function testcase() { + var b = Object.isSealed(Date.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-17.js new file mode 100644 index 0000000000..e417beb683 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-17.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-17", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-17.js", + +description: "Object.isSealed returns false for all built-in objects (RegExp)", + +test: function testcase() { + var b = Object.isSealed(RegExp); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-18.js new file mode 100644 index 0000000000..9916a24c00 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-18.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-18", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-18.js", + +description: "Object.isSealed returns false for all built-in objects (RegExp.prototype)", + +test: function testcase() { + var b = Object.isSealed(RegExp.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-19.js new file mode 100644 index 0000000000..1b2b69309a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-19.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-19", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-19.js", + +description: "Object.isSealed returns false for all built-in objects (Error)", + +test: function testcase() { + var b = Object.isSealed(Error); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-2.js new file mode 100644 index 0000000000..db279bd90e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-2.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-2.js", + +description: "Object.isSealed returns false for all built-in objects (Object)", + +test: function testcase() { + var b = Object.isSealed(Object); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-20.js new file mode 100644 index 0000000000..bdf7871f47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-20.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-20", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-20.js", + +description: "Object.isSealed returns false for all built-in objects (Error.prototype)", + +test: function testcase() { + var b = Object.isSealed(Error.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-21.js new file mode 100644 index 0000000000..b5d83460b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-21.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-21", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-21.js", + +description: "Object.isSealed returns false for all built-in objects (EvalError)", + +test: function testcase() { + var b = Object.isSealed(EvalError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-22.js new file mode 100644 index 0000000000..cc4948e4bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-22.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-22", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-22.js", + +description: "Object.isSealed returns false for all built-in objects (RangeError)", + +test: function testcase() { + var b = Object.isSealed(RangeError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-23.js new file mode 100644 index 0000000000..3ef58328dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-23.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-23", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-23.js", + +description: "Object.isSealed returns false for all built-in objects (ReferenceError)", + +test: function testcase() { + var b = Object.isSealed(ReferenceError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-24.js new file mode 100644 index 0000000000..13709ea0e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-24.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-24", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-24.js", + +description: "Object.isSealed returns false for all built-in objects (SyntaxError)", + +test: function testcase() { + var b = Object.isSealed(SyntaxError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-25.js new file mode 100644 index 0000000000..de47afab05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-25.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-25", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-25.js", + +description: "Object.isSealed returns false for all built-in objects (TypeError)", + +test: function testcase() { + var b = Object.isSealed(TypeError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-26.js new file mode 100644 index 0000000000..ea165ff651 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-26.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-26", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-26.js", + +description: "Object.isSealed returns false for all built-in objects (URIError)", + +test: function testcase() { + var b = Object.isSealed(URIError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-27.js new file mode 100644 index 0000000000..bf445dc68e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-27.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-27", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-27.js", + +description: "Object.isSealed returns false for all built-in objects (JSON)", + +test: function testcase() { + var b = Object.isSealed(JSON); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-3.js new file mode 100644 index 0000000000..5b938d3bf4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-3.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-3.js", + +description: "Object.isSealed returns false for all built-in objects (Object.prototype)", + +test: function testcase() { + var b = Object.isSealed(Object.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-4.js new file mode 100644 index 0000000000..c3f5c189de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-4.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-4.js", + +description: "Object.isSealed returns false for all built-in objects (Function)", + +test: function testcase() { + var b = Object.isSealed(Function); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-5.js new file mode 100644 index 0000000000..e568157f7e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-5.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-5.js", + +description: "Object.isSealed returns false for all built-in objects (Function.prototype)", + +test: function testcase() { + var b = Object.isSealed(Function.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-6.js new file mode 100644 index 0000000000..f5ec261f1c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-6.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-6", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-6.js", + +description: "Object.isSealed returns false for all built-in objects (Array)", + +test: function testcase() { + var b = Object.isSealed(Array); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-7.js new file mode 100644 index 0000000000..f1bf7f51d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-7.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-7", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-7.js", + +description: "Object.isSealed returns false for all built-in objects (Array.prototype)", + +test: function testcase() { + var b = Object.isSealed(Array.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-8.js new file mode 100644 index 0000000000..c097aba4e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-8.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-8", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-8.js", + +description: "Object.isSealed returns false for all built-in objects (String)", + +test: function testcase() { + var b = Object.isSealed(String); + if (b === false) { + return true; + } +}, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-9.js new file mode 100644 index 0000000000..f253ddb4b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-9.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.11-4-9", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.11/15.2.3.11-4-9.js", + +description: "Object.isSealed returns false for all built-in objects (String.prototype)", + +test: function testcase() { + var b = Object.isSealed(String.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-0-1.js new file mode 100644 index 0000000000..6d80d6e843 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.12-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-0-1.js", + +description: "Object.isFrozen must exist as a function", + +test: function testcase() { + var f = Object.isFrozen; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-0-2.js new file mode 100644 index 0000000000..369a153319 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.12-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-0-2.js", + +description: "Object.isFrozen must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.isFrozen.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js new file mode 100644 index 0000000000..a2e97e6fc4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-1.js", + + description: "Object.isFrozen - TypeError is thrown when the first param 'O' is undefined", + + test: function testcase() { + try { + Object.isFrozen(undefined); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js new file mode 100644 index 0000000000..37acc216ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-2.js", + + description: "Object.isFrozen - TypeError is thrown when the first param 'O' is null", + + test: function testcase() { + try { + Object.isFrozen(null); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js new file mode 100644 index 0000000000..924a68f5ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-3.js", + + description: "Object.isFrozen - TypeError is thrown when the first param 'O' is a boolean", + + test: function testcase() { + try { + Object.isFrozen(true); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js new file mode 100644 index 0000000000..b3acffc965 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-4.js", + + description: "Object.isFrozen - TypeError is thrown when the first param 'O' is a string", + + test: function testcase() { + try { + Object.isFrozen("abc"); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-5.js new file mode 100644 index 0000000000..0e1ee82b19 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-5.js @@ -0,0 +1,37 @@ +/// 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: "15.2.3.12-1-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-5.js", + + description: "Object.isFrozen applies to dense array", + + test: function testcase() { + var obj = Object.freeze([0, 1, 2]); + return Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-6.js new file mode 100644 index 0000000000..4c5544aa02 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-6.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-1-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-6.js", + + description: "Object.isFrozen applies to sparse array", + + test: function testcase() { + var sparseArr = [0, 1]; + sparseArr[10000] = 10000; + + sparseArr = Object.freeze(sparseArr); + return Object.isFrozen(sparseArr); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-7.js new file mode 100644 index 0000000000..780889d340 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-7.js @@ -0,0 +1,37 @@ +/// 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: "15.2.3.12-1-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1-7.js", + + description: "Object.isFrozen applies to non-array object which contains index named properties", + + test: function testcase() { + var obj = Object.freeze({ 0: 0, 1: 1, 1000: 1000 }); + return Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.js new file mode 100644 index 0000000000..4052478981 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.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: "15.2.3.12-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-1.js", + +description: "Object.isFrozen throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.isFrozen(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-1.js new file mode 100644 index 0000000000..76c4bcd1aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-1.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.12-2-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-1.js", + + description: "Object.isFrozen - inherited data property is not considered into the for each loop", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "Father", { + value: 10, + writable: false, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.preventExtensions(child); + + return Object.isFrozen(child); + + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.preventExtensions) && fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-2.js new file mode 100644 index 0000000000..e78e99e568 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-2.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.12-2-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-2.js", + + description: "Object.isFrozen - inherited accessor property is not considered into the for each loop", + + test: function testcase() { + + var proto = {}; + + function get_func() { + return 10; + } + function set_func() { } + + Object.defineProperty(proto, "Father", { + get: get_func, + set: set_func, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.preventExtensions(child); + + return Object.isFrozen(child); + + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.preventExtensions) && fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-1.js new file mode 100644 index 0000000000..f9ecb3b670 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.12-2-a-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-1.js", + + description: "Object.isFrozen - 'P' is own data property", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 12, + writable: true, + configurable: false + }); + + Object.preventExtensions(obj); + + return !Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-11.js new file mode 100644 index 0000000000..4702fa5ffa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-11.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.12-2-a-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-11.js", + + description: "Object.isFrozen - 'O' is the Arguments object", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }(1, 2, 3)); + + Object.preventExtensions(arg); + return !Object.isFrozen(arg); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-12.js new file mode 100644 index 0000000000..2be2febfbd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-12.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: "15.2.3.12-2-a-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-12.js", + + description: "Object.isFrozen - 'O' is a String object", + + test: function testcase() { + + var obj = new String("abc"); + + obj.len = 100; + + Object.preventExtensions(obj); + + return !Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-13.js new file mode 100644 index 0000000000..6133f482d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-13.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.12-2-a-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-13.js", + + description: "Object.isFrozen - 'O' is a Function object", + + test: function testcase() { + + var obj = function () { }; + + Object.defineProperty(obj, "property", { + value: 12, + writable: true, + configurable: false + }); + + Object.preventExtensions(obj); + + return !Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.preventExtensions) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-14.js new file mode 100644 index 0000000000..76be808851 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-14.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: "15.2.3.12-2-a-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-14.js", + + description: "Object.isFrozen - 'O' is an Array object", + + test: function testcase() { + + var obj = [2]; + obj.len = 200; + + Object.preventExtensions(obj); + + return !Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-2.js new file mode 100644 index 0000000000..88d750caad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-2.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.12-2-a-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-2.js", + + description: "Object.isFrozen - 'P' is own data property that overrides an inherited data property", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "foo", { + value: 9, + writable: false, + configurable: false + }); + + var Con = function () { }; + Con.prototype = proto; + var child = new Con(); + + Object.defineProperty(child, "foo", { + value: 12, + writable: true, + configurable: false + }); + + Object.preventExtensions(child); + return !Object.isFrozen(child); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-3.js new file mode 100644 index 0000000000..387273712a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-3.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.12-2-a-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-3.js", + + description: "Object.isFrozen - 'P' is own data property that overrides an inherited accessor property", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "foo", { + get: function () { + return 9; + }, + configurable: false + }); + + var Con = function () { }; + Con.prototype = proto; + var child = new Con(); + + + Object.defineProperty(child, "foo", { + value: 12, + configurable: true + }); + + Object.preventExtensions(child); + return !Object.isFrozen(child); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-4.js new file mode 100644 index 0000000000..d8e400b551 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-4.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.12-2-a-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-4.js", + + description: "Object.isFrozen - 'P' is own accessor property", + + test: function testcase() { + + var obj = {}; + Object.defineProperty(obj, "foo", { + get: function () { + return 9; + }, + configurable: true + }); + + Object.preventExtensions(obj); + return !Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-5.js new file mode 100644 index 0000000000..dc6929d2d5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-5.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.12-2-a-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-5.js", + + description: "Object.isFrozen - 'P' is own accessor property that overrides an inherited data property", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "foo", { + value: 12, + configurable: false + }); + + var Con = function () { }; + Con.prototype = proto; + var child = new Con(); + + Object.defineProperty(child, "foo", { + get: function () { + return 9; + }, + configurable: true + }); + + Object.preventExtensions(child); + return !Object.isFrozen(child); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-6.js new file mode 100644 index 0000000000..e83d6093a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-6.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.12-2-a-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-6.js", + + description: "Object.isFrozen - 'P' is own accessor property that overrides an inherited accessor property", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "foo", { + get: function () { + return 12; + }, + configurable: false + }); + + var Con = function () { }; + Con.prototype = proto; + var child = new Con(); + + + Object.defineProperty(child, "foo", { + get: function () { + return 9; + }, + configurable: true + }); + + Object.preventExtensions(child); + return !Object.isFrozen(child); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-7.js new file mode 100644 index 0000000000..f8ba0389f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-7.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.12-2-a-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-7.js", + + description: "Object.isFrozen - 'P' is own accessor property without a get function", + + test: function testcase() { + + var obj = {}; + Object.defineProperty(obj, "foo", { + set: function () { }, + configurable: true + }); + + Object.preventExtensions(obj); + return !Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-8.js new file mode 100644 index 0000000000..fc62e43705 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-8.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.12-2-a-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-a-8.js", + + description: "Object.isFrozen - 'P' is own accessor property without a get function that overrides an inherited accessor property", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "foo", { + get: function () { + return 9; + }, + configurable: false + }); + + var Con = function () { }; + Con.prototype = proto; + var child = new Con(); + + Object.defineProperty(child, "foo", { + set: function () { }, + configurable: true + }); + + Object.preventExtensions(child); + return !Object.isFrozen(child); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-b-i-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-b-i-1.js new file mode 100644 index 0000000000..9e35f9fcf8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-b-i-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.12-2-b-i-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-b-i-1.js", + + description: "Object.isFrozen returns false if 'O' contains own writable data property", + + test: function testcase() { + + var obj = {}; + Object.defineProperty(obj, "foo", { + value: 20, + writable: true, + configurable: false + }); + Object.preventExtensions(obj); + return !Object.isFrozen(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-c-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-c-1.js new file mode 100644 index 0000000000..29ab42cc53 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-c-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.12-2-c-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-c-1.js", + + description: "Object.isFrozen returns false if 'O' contains own configurable data property", + + test: function testcase() { + + var obj = {}; + Object.defineProperty(obj, "foo", { + value: 20, + writable: false, + configurable: true + }); + + Object.preventExtensions(obj); + return !Object.isFrozen(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-c-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-c-2.js new file mode 100644 index 0000000000..e6c9cfdf9f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-c-2.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.12-2-c-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-c-2.js", + + description: "Object.isFrozen returns false if 'O' contains own configurable accessor property", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + function set_func() { } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + configurable: true + }); + + Object.preventExtensions(obj); + return !Object.isFrozen(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-1.js new file mode 100644 index 0000000000..8c717c0113 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-1.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: "15.2.3.12-3-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-1.js", + +description: "Object.isFrozen returns false for all built-in objects (Global)", + +test: function testcase() { + // in non-strict mode, 'this' is bound to the global object. + var b = Object.isFrozen(this); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-10.js new file mode 100644 index 0000000000..387d34ab27 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-10.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-10", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-10.js", + +description: "Object.isFrozen returns false for all built-in objects (Boolean)", + +test: function testcase() { + var b = Object.isFrozen(Boolean); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-11.js new file mode 100644 index 0000000000..8e1ec00492 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-11.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-11", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-11.js", + +description: "Object.isFrozen returns false for all built-in objects (Boolean.prototype)", + +test: function testcase() { + var b = Object.isFrozen(Boolean.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-12.js new file mode 100644 index 0000000000..96bf607286 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-12.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-12", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-12.js", + +description: "Object.isFrozen returns false for all built-in objects (Number)", + +test: function testcase() { + var b = Object.isFrozen(Number); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-13.js new file mode 100644 index 0000000000..453e181430 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-13.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-13", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-13.js", + +description: "Object.isFrozen returns false for all built-in objects (Number.prototype)", + +test: function testcase() { + var b = Object.isFrozen(Number.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-14.js new file mode 100644 index 0000000000..c0d0a0f7db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-14.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-14", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-14.js", + +description: "Object.isFrozen returns false for all built-in objects (Math)", + +test: function testcase() { + var b = Object.isFrozen(Math); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-15.js new file mode 100644 index 0000000000..e15c283200 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-15.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-15", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-15.js", + +description: "Object.isFrozen returns false for all built-in objects (Date)", + +test: function testcase() { + var b = Object.isFrozen(Date); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-16.js new file mode 100644 index 0000000000..9abf3dc41f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-16.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-16", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-16.js", + +description: "Object.isFrozen returns false for all built-in objects (Date.prototype)", + +test: function testcase() { + var b = Object.isFrozen(Date.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-17.js new file mode 100644 index 0000000000..438b6f7c79 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-17.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-17", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-17.js", + +description: "Object.isFrozen returns false for all built-in objects (RegExp)", + +test: function testcase() { + var b = Object.isFrozen(RegExp); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-18.js new file mode 100644 index 0000000000..0f87c46cf3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-18.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-18", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-18.js", + +description: "Object.isFrozen returns false for all built-in objects (RegExp.prototype)", + +test: function testcase() { + var b = Object.isFrozen(RegExp.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-19.js new file mode 100644 index 0000000000..7e88972731 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-19.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-19", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-19.js", + +description: "Object.isFrozen returns false for all built-in objects (Error)", + +test: function testcase() { + var b = Object.isFrozen(Error); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-2.js new file mode 100644 index 0000000000..3094117cce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-2.js", + +description: "Object.isFrozen returns false for all built-in objects (Object)", + +test: function testcase() { + var b = Object.isFrozen(Object); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-20.js new file mode 100644 index 0000000000..a479d8ac4d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-20.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-20", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-20.js", + +description: "Object.isFrozen returns false for all built-in objects (Error.prototype)", + +test: function testcase() { + var b = Object.isFrozen(Error.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-21.js new file mode 100644 index 0000000000..30b77c538c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-21.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-21", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-21.js", + +description: "Object.isFrozen returns false for all built-in objects (EvalError)", + +test: function testcase() { + var b = Object.isFrozen(EvalError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-22.js new file mode 100644 index 0000000000..f2a2d444fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-22.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-22", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-22.js", + +description: "Object.isFrozen returns false for all built-in objects (RangeError)", + +test: function testcase() { + var b = Object.isFrozen(RangeError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-23.js new file mode 100644 index 0000000000..308c8a6b29 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-23.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-23", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-23.js", + +description: "Object.isFrozen returns false for all built-in objects (ReferenceError)", + +test: function testcase() { + var b = Object.isFrozen(ReferenceError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-24.js new file mode 100644 index 0000000000..69aa7c4716 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-24.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-24", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-24.js", + +description: "Object.isFrozen returns false for all built-in objects (SyntaxError)", + +test: function testcase() { + var b = Object.isFrozen(SyntaxError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-25.js new file mode 100644 index 0000000000..028a605c89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-25.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-25", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-25.js", + +description: "Object.isFrozen returns false for all built-in objects (TypeError)", + +test: function testcase() { + var b = Object.isFrozen(TypeError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-26.js new file mode 100644 index 0000000000..18be21682c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-26.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-26", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-26.js", + +description: "Object.isFrozen returns false for all built-in objects (URIError)", + +test: function testcase() { + var b = Object.isFrozen(URIError); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-27.js new file mode 100644 index 0000000000..22f06a2132 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-27.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-27", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-27.js", + +description: "Object.isFrozen returns false for all built-in objects (JSON)", + +test: function testcase() { + var b = Object.isFrozen(JSON); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-28.js new file mode 100644 index 0000000000..f571b729b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-28.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.12-3-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-28.js", + + description: "Object.isFrozen returns true when all own properties of 'O' are not writable and not configurable, and 'O' is not extensible", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo1", { + value: 20, + writable: false, + enumerable: false, + configurable: false + }); + + + function get_func() { + return 10; + } + function set_func() { } + + Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + configurable: false + }); + + Object.preventExtensions(obj); + return Object.isFrozen(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen) && fnExists(Object.preventExtensions) && fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-3.js new file mode 100644 index 0000000000..bb479637f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-3.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-3.js", + +description: "Object.isFrozen returns false for all built-in objects (Object.prototype)", + +test: function testcase() { + var b = Object.isFrozen(Object.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-4.js new file mode 100644 index 0000000000..7bf28cd47e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-4.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-4.js", + +description: "Object.isFrozen returns false for all built-in objects (Function)", + +test: function testcase() { + var b = Object.isFrozen(Function); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-5.js new file mode 100644 index 0000000000..c4e707534e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-5.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-5.js", + +description: "Object.isFrozen returns false for all built-in objects (Function.prototype)", + +test: function testcase() { + var b = Object.isFrozen(Function.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-6.js new file mode 100644 index 0000000000..d3e41b527e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-6.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-6", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-6.js", + +description: "Object.isFrozen returns false for all built-in objects (Array)", + +test: function testcase() { + var b = Object.isFrozen(Array); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-7.js new file mode 100644 index 0000000000..11fc21ab77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-7.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-7", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-7.js", + +description: "Object.isFrozen returns false for all built-in objects (Array.prototype)", + +test: function testcase() { + var b = Object.isFrozen(Array.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-8.js new file mode 100644 index 0000000000..97405f811d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-8.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-8", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-8.js", + +description: "Object.isFrozen returns false for all built-in objects (String)", + +test: function testcase() { + var b = Object.isFrozen(String); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-9.js new file mode 100644 index 0000000000..69e7d5eab0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-9.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.12-3-9", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-9.js", + +description: "Object.isFrozen returns false for all built-in objects (String.prototype)", + +test: function testcase() { + var b = Object.isFrozen(String.prototype); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isFrozen); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-4-1.js new file mode 100644 index 0000000000..768fdf4e36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-4-1.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.12-4-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.12/15.2.3.12-4-1.js", + + description: "Object.isFrozen returns false if extensible is true", + + test: function testcase() { + return !Object.isFrozen({}); + }, + + precondition: function prereq() { + return fnExists(Object.isFrozen); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-1.js new file mode 100644 index 0000000000..b097ec6550 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.13-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-1.js", + +description: "Object.isExtensible must exist as a function", + +test: function testcase() { + var f = Object.isExtensible ; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-2.js new file mode 100644 index 0000000000..c9cf04e0f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.13-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-2.js", + +description: "Object.isExtensible must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.isExtensible.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-3.js new file mode 100644 index 0000000000..cffeb7ab5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-3.js @@ -0,0 +1,44 @@ +/// 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. + +/* +A newly created object using the Object contructor has its [[Extensible]] +property set to true by default (15.2.2.1, step 8). +*/ + +ES5Harness.registerTest( { +id: "15.2.3.13-0-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-0-3.js", + +description: "Object.isExtensible is true for objects created using the Object constructor", + +test: function testcase() { + var o = new Object(); + + if (Object.isExtensible(o) === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.js new file mode 100644 index 0000000000..6a339bc9d5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.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: "15.2.3.13-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-1.js", + + description: "Object.isExtensible throws TypeError if 'O' is undefined", + + test: function testcase() { + + try { + Object.isExtensible(undefined); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.js new file mode 100644 index 0000000000..b43ffdc400 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.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: "15.2.3.13-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-2.js", + + description: "Object.isExtensible throws TypeError if 'O' is null", + + test: function testcase() { + + try { + Object.isExtensible(null); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.js new file mode 100644 index 0000000000..dd12e969aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.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: "15.2.3.13-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-3.js", + + description: "Object.isExtensible throws TypeError if 'O' is a boolean", + + test: function testcase() { + + try { + Object.isExtensible(true); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.js new file mode 100644 index 0000000000..53a5a14619 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.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: "15.2.3.13-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1-4.js", + + description: "Object.isExtensible throws TypeError if 'O' is a string", + + test: function testcase() { + + try { + Object.isExtensible("abc"); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.js new file mode 100644 index 0000000000..7a69c93ecf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.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: "15.2.3.13-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-1.js", + +description: "Object.isExtensible throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.isExtensible(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-1.js new file mode 100644 index 0000000000..1de188d5a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-1.js @@ -0,0 +1,44 @@ +/// 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. + + + +global = this; + + +ES5Harness.registerTest( { +id: "15.2.3.13-2-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-1.js", + +description: "Object.isExtensible returns true for all built-in objects (Global)", + +test: function testcase() { + // in non-strict mode, 'this' is bound to the global object. + var e = Object.isExtensible(this); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-10.js new file mode 100644 index 0000000000..ab19561cd1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-10.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-10", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-10.js", + +description: "Object.isExtensible returns true for all built-in objects (RegExp)", + +test: function testcase() { + var e = Object.isExtensible(RegExp); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-11.js new file mode 100644 index 0000000000..c6f2dd6427 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-11.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-11", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-11.js", + +description: "Object.isExtensible returns true for all built-in objects (Error)", + +test: function testcase() { + var e = Object.isExtensible(Error); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-12.js new file mode 100644 index 0000000000..6f1f8a9a6c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-12.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-12", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-12.js", + +description: "Object.isExtensible returns true for all built-in objects (JSON)", + +test: function testcase() { + var e = Object.isExtensible(JSON); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-13.js new file mode 100644 index 0000000000..383ec74e91 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-13.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-13", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-13.js", + +description: "Object.isExtensible returns true for all built-in objects (Function.constructor)", + +test: function testcase() { + var e = Object.isExtensible(Function.constructor); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-14.js new file mode 100644 index 0000000000..eec360949c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-14.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-14", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-14.js", + +description: "Object.isExtensible returns true for all built-in objects (Function.prototype)", + +test: function testcase() { + var e = Object.isExtensible(Function.prototype); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-15.js new file mode 100644 index 0000000000..3c931ead50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-15.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-15", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-15.js", + +description: "Object.isExtensible returns true for all built-in objects (Array.prototype)", + +test: function testcase() { + var e = Object.isExtensible(Array.prototype); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-16.js new file mode 100644 index 0000000000..3bc35ac896 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-16.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-16", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-16.js", + +description: "Object.isExtensible returns true for all built-in objects (String.prototype)", + +test: function testcase() { + var e = Object.isExtensible(String.prototype); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-17.js new file mode 100644 index 0000000000..c9688a8ae7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-17.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-17", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-17.js", + +description: "Object.isExtensible returns true for all built-in objects (Boolean.prototype)", + +test: function testcase() { + var e = Object.isExtensible(Boolean.prototype); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-18.js new file mode 100644 index 0000000000..212b88ef07 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-18.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-18", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-18.js", + +description: "Object.isExtensible returns true for all built-in objects (Number.prototype)", + +test: function testcase() { + var e = Object.isExtensible(Number.prototype); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-19.js new file mode 100644 index 0000000000..7bd4974e41 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-19.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-19", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-19.js", + +description: "Object.isExtensible returns true for all built-in objects (Date.prototype)", + +test: function testcase() { + var e = Object.isExtensible(Date.prototype); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-2.js new file mode 100644 index 0000000000..0f937c4747 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.13-2-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-2.js", + +description: "Object.isExtensible returns true for all built-in objects (Object)", + +test: function testcase() { + var o = {}; + var e = Object.isExtensible(o); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-20.js new file mode 100644 index 0000000000..07f2466ac4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-20.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-20", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-20.js", + +description: "Object.isExtensible returns true for all built-in objects (RegExp.prototype)", + +test: function testcase() { + var e = Object.isExtensible(RegExp.prototype); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-21.js new file mode 100644 index 0000000000..3374311173 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-21.js @@ -0,0 +1,52 @@ +/// 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. + +/* +Function.constructor +Function.prototype +Array.prototype +String.prototype +Boolean.prototype +Number.prototype +Date.prototype +RegExp.prototype +Error.prototype +*/ + + + +ES5Harness.registerTest( { +id: "15.2.3.13-2-21", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-21.js", + +description: "Object.isExtensible returns true for all built-in objects (Error.prototype)", + +test: function testcase() { + var e = Object.isExtensible(Error.prototype); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-22.js new file mode 100644 index 0000000000..744784c876 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-22.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.13-2-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-22.js", + + description: "Object.isExtensible returns true if 'O' is extensible", + + test: function testcase() { + + var obj = {}; + return Object.isExtensible(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-23.js new file mode 100644 index 0000000000..0904e8ed72 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-23.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.13-2-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-23.js", + + description: "Object.isExtensible returns false if 'O' is not extensible", + + test: function testcase() { + + var obj = {}; + Object.preventExtensions(obj); + return !Object.isExtensible(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-24.js new file mode 100644 index 0000000000..3ece8ff551 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-24.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.13-2-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-24.js", + + description: "Object.isExtensible returns true if O is extensible and has a prototype that is extensible", + + test: function testcase() { + + var proto = {}; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var obj = new ConstructFun(); + + return Object.isExtensible(obj); + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-25.js new file mode 100644 index 0000000000..c7eeb3a001 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-25.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.13-2-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-25.js", + + description: "Object.isExtensible returns true if O is extensible and has a prototype that is not extensible", + + test: function testcase() { + + var proto = {}; + Object.preventExtensions(proto); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var obj = new ConstructFun(); + + return Object.isExtensible(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-26.js new file mode 100644 index 0000000000..f2c7b1b149 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-26.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.13-2-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-26.js", + + description: "Object.isExtensible returns false if O is not extensible and has a prototype that is extensible", + + test: function testcase() { + + var proto = {}; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + + Object.preventExtensions(obj); + + return !Object.isExtensible(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-27.js new file mode 100644 index 0000000000..4372798f6b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-27.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.13-2-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-27.js", + + description: "Object.isExtensible returns false if O is not extensible and has a prototype that is not extensible", + + test: function testcase() { + + var proto = {}; + Object.preventExtensions(proto); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var obj = new ConstructFun(); + Object.preventExtensions(obj); + + return !Object.isExtensible(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-29.js new file mode 100644 index 0000000000..7342b71eab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-29.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.13-2-29", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-29.js", + + description: "Object.isExtensible returns true for the global object", + + test: function testcase() { + + return Object.isExtensible(fnGlobalObject()); + + }, + + precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-3.js new file mode 100644 index 0000000000..d96348fae1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-3.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: "15.2.3.13-2-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-3.js", + +description: "Object.isExtensible returns true for all built-in objects (Function)", + +test: function testcase() { + function foo() {} + + var e = Object.isExtensible(foo); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-4.js new file mode 100644 index 0000000000..5260b6a459 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-4.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-4.js", + +description: "Object.isExtensible returns true for all built-in objects (Array)", + +test: function testcase() { + var e = Object.isExtensible(Array); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-5.js new file mode 100644 index 0000000000..f6691d8d2b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-5.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-5.js", + +description: "Object.isExtensible returns true for all built-in objects (String)", + +test: function testcase() { + var e = Object.isExtensible(String); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-6.js new file mode 100644 index 0000000000..6205b3205c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-6.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-6", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-6.js", + +description: "Object.isExtensible returns true for all built-in objects (Boolean)", + +test: function testcase() { + var e = Object.isExtensible(Boolean); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-7.js new file mode 100644 index 0000000000..34fe0c4126 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-7.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-7", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-7.js", + +description: "Object.isExtensible returns true for all built-in objects (Number)", + +test: function testcase() { + var e = Object.isExtensible(Number); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-8.js new file mode 100644 index 0000000000..1ebb9aa296 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-8.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-8", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-8.js", + +description: "Object.isExtensible returns true for all built-in objects (Math)", + +test: function testcase() { + var e = Object.isExtensible(Math); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-9.js new file mode 100644 index 0000000000..04a16800ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-9.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.13-2-9", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.13/15.2.3.13-2-9.js", + +description: "Object.isExtensible returns true for all built-in objects (Date)", + +test: function testcase() { + var e = Object.isExtensible(Date); + if (e === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-0-1.js new file mode 100644 index 0000000000..55b98c35a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.14-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-0-1.js", + +description: "Object.keys must exist as a function", + +test: function testcase() { + var f = Object.keys; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-0-2.js new file mode 100644 index 0000000000..9f0ffb3179 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.14-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-0-2.js", + +description: "Object.keys must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.keys.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.js new file mode 100644 index 0000000000..f2ce6fea0f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.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: "15.2.3.14-1-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-1.js", + +description: "Object.keys throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.keys(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.js new file mode 100644 index 0000000000..27b2737303 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.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: "15.2.3.14-1-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-2.js", + +description: "Object.keys throws TypeError if type of first param is not Object (boolean)", + +test: function testcase() { + try { + Object.keys(true); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js new file mode 100644 index 0000000000..64c41f6b43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.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: "15.2.3.14-1-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js", + +description: "Object.keys throws TypeError if type of first param is not Object (string)", + +test: function testcase() { + try { + Object.keys('abc'); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-4.js new file mode 100644 index 0000000000..8a4ac3640e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-4.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: "15.2.3.14-1-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-4.js", + +description: "Object.keys throws TypeError if type of first param is not Object (null)", + +test: function testcase() { + try { + Object.keys(null); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-5.js new file mode 100644 index 0000000000..12f662399a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-5.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: "15.2.3.14-1-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-5.js", + +description: "Object.keys throws TypeError if type of first param is not Object (undefined)", + +test: function testcase() { + try { + Object.keys(undefined); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-1.js new file mode 100644 index 0000000000..b6aad9f54f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-1.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: "15.2.3.14-2-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-1.js", + +description: "Object.keys returns the standard built-in Array", + +test: function testcase() { + var o = { x: 1, y: 2}; + + var a = Object.keys(o); + if (Array.isArray(a) === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-2.js new file mode 100644 index 0000000000..f0c1898c19 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-2.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: "15.2.3.14-2-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-2.js", + +description: "Object.keys returns the standard built-in Array (check [[Class]]", + +test: function testcase() { + var o = { x: 1, y: 2}; + + var a = Object.keys(o); + var s = Object.prototype.toString.call(a); + if (s === '[object Array]') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-3.js new file mode 100644 index 0000000000..7695ecf585 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-3.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.14-2-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-3.js", + +description: "Object.keys returns the standard built-in Array (Array overridden)", + +test: function testcase() { + function Array() { alert("helloe"); } + + var o = { x: 1, y: 2}; + + var a = Object.keys(o); + + var s = Object.prototype.toString.call(a); + if (s === '[object Array]') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-4.js new file mode 100644 index 0000000000..07d22dda52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-4.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: "15.2.3.14-2-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-4.js", + +description: "Object.keys returns the standard built-in Array that is extensible", + +test: function testcase() { + var o = { x: 1, y: 2}; + + var a = Object.keys(o); + if (Object.isExtensible(a) === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-5.js new file mode 100644 index 0000000000..778f40a529 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-5.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: "15.2.3.14-2-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-5.js", + +description: "Object.keys returns the standard built-in Array that is not sealed", + +test: function testcase() { + var o = { x: 1, y: 2}; + + var a = Object.keys(o); + if (Object.isSealed(a) === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.isSealed); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-6.js new file mode 100644 index 0000000000..36a7bec35e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-6.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: "15.2.3.14-2-6", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-6.js", + +description: "Object.keys returns the standard built-in Array that is not frozen", + +test: function testcase() { + var o = { x: 1, y: 2}; + + var a = Object.keys(o); + if (Object.isFrozen(a) === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-7.js new file mode 100644 index 0000000000..623cd26dca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-7.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.14-2-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-7.js", + + description: "Object.keys - 'n' is 0 when 'O' doesn't contain own enumerable data or accessor properties", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop1", { + value: 1001, + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, "prop2", { + get: function () { + return 1002; + }, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + return arr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-8.js new file mode 100644 index 0000000000..9c8cca870b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-8.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.14-2-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-2-8.js", + + description: "Object.keys - 'n' is the correct value when enumerable properties exist in 'O'", + + test: function testcase() { + var obj = { + prop1: 1001, + prop2: function () { + return 1002; + } + }; + + Object.defineProperty(obj, "prop3", { + value: 1003, + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, "prop4", { + get: function () { + return 1004; + }, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + return (arr.length === 2) && (arr[0] === "prop1") && (arr[1] === "prop2"); + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-1.js new file mode 100644 index 0000000000..41be9b0dd9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-1.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: "15.2.3.14-3-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-1.js", + +description: "Object.keys returns the standard built-in Array containing own enumerable properties", + +test: function testcase() { + var o = { x: 1, y: 2}; + + var a = Object.keys(o); + if (a.length === 2 && + a[0] === 'x' && + a[1] === 'y') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-2.js new file mode 100644 index 0000000000..0743e79b59 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-2.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: "15.2.3.14-3-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-2.js", + +description: "Object.keys returns the standard built-in Array containing own enumerable properties (function)", + +test: function testcase() { + function foo() {} + foo.x = 1; + + var a = Object.keys(foo); + if (a.length === 1 && + a[0] === 'x') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-3.js new file mode 100644 index 0000000000..06f07e951a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-3.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: "15.2.3.14-3-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-3.js", + +description: "Object.keys returns the standard built-in Array containing own enumerable properties (array)", + +test: function testcase() { + var o = [1, 2]; + var a = Object.keys(o); + if (a.length === 2 && + a[0] === '0' && + a[1] === '1') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-4.js new file mode 100644 index 0000000000..24ea1602c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-4.js @@ -0,0 +1,54 @@ +// Copyright (c) 2009 Google, Inc. All rights reserved. +// +// 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: "15.2.3.14-3-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-4.js", + +description: "Object.keys of an arguments object returns the indices of the given arguments", + +test: function testcase() { + function testArgs2(x, y, z) { + // Properties of the arguments object are enumerable. + var a = Object.keys(arguments); + if (a.length === 2 && a[0] === "0" && a[1] === "1") + return true; + } + function testArgs3(x, y, z) { + // Properties of the arguments object are enumerable. + var a = Object.keys(arguments); + if (a.length === 3 && a[0] === "0" && a[1] === "1" && a[2] === "2") + return true; + } + function testArgs4(x, y, z) { + // Properties of the arguments object are enumerable. + var a = Object.keys(arguments); + if (a.length === 4 && a[0] === "0" && a[1] === "1" && a[2] === "2" && a[3] === "3") + return true; + } + return testArgs2(1, 2) && testArgs3(1, 2, 3) && testArgs4(1, 2, 3, 4); + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-5.js new file mode 100644 index 0000000000..69c9dc27d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-5.js @@ -0,0 +1,41 @@ +// Copyright (c) 2009 Google, Inc. All rights reserved. +// +// 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: "15.2.3.14-3-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-5.js", + +description: "Object.keys must return a fresh array on each invocation", + +test: function testcase() { + var literal = {a: 1}; + var keysBefore = Object.keys(literal); + if (keysBefore[0] != 'a') return false; + keysBefore[0] = 'x'; + var keysAfter = Object.keys(literal); + return (keysBefore[0] == 'x') && (keysAfter[0] == 'a'); + }, + +precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-6.js new file mode 100644 index 0000000000..e4dd434d97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-6.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.14-3-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-6.js", + + description: "Object.keys - returns the standard built-in Array (instanceof Array)", + + test: function testcase() { + var obj = {}; + + var arr = Object.keys(obj); + + return arr instanceof Array; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-7.js new file mode 100644 index 0000000000..4e0f9239ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-7.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.14-3-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-3-7.js", + + description: "Object.keys - length of the returned array equals the number of own enumerable properties of 'O'", + + test: function testcase() { + var obj = { prop1: 1001, prop2: 1002 }; + + Object.defineProperty(obj, "prop3", { + value: 1003, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "prop4", { + get: function () { + return 1003; + }, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + return arr.length === 3; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-4-1.js new file mode 100644 index 0000000000..8bca72d87e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-4-1.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.14-4-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-4-1.js", + + description: "Object.keys - elements of the returned array start from index 0", + + test: function testcase() { + var obj = { prop1: 1001, prop2: 1002 }; + + Object.defineProperty(obj, "prop3", { + value: 1003, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "prop4", { + get: function () { + return 1003; + }, + enumerable: true, + configurable: true + }); + + var arr = Object.keys(obj); + + return arr.hasOwnProperty(0) && arr[0] === "prop1"; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-1.js new file mode 100644 index 0000000000..7ca106d2a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.14-5-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-1.js", + + description: "Object.keys - own enumerable data property of 'O' is defined in returned array", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "prop", { + value: 1003, + enumerable: true, + configurable: true + }); + + var arr = Object.keys(obj); + + return arr.hasOwnProperty(0) && arr[0] === "prop"; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-10.js new file mode 100644 index 0000000000..9e3d73341c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-10.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.14-5-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-10.js", + + description: "Object.keys - inherted enumerable accessor property that is over-ridden by non-enumerable own accessor property is not defined in returned array", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function () { }, + enumerable: true, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + get: function () { }, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr[p] === "prop") { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-11.js new file mode 100644 index 0000000000..46b52b6414 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-11.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.14-5-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-11.js", + + description: "Object.keys - own enumerable indexed data property of dense array 'O' is defined in returned array", + + test: function testcase() { + var obj = [1, 2, 3, 4, 5]; + + var arr = Object.keys(obj); + + var initValue = 0; + for (var p in arr) { + if (arr.hasOwnProperty(p)) { + if (arr[p] !== initValue.toString()) { + return false; + } + initValue++; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-12.js new file mode 100644 index 0000000000..117e7aa0e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-12.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.14-5-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-12.js", + + description: "Object.keys - own enumerable indexed accessor property of dense array 'O' is defined in returned array", + + test: function testcase() { + var obj = [2, 3, 4, 5]; + + Object.defineProperty(obj, "prop", { + get: function () { + return 6; + }, + enumerable: true, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr.hasOwnProperty(p)) { + if (arr[p] === "prop") { + return true; + } + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-13.js new file mode 100644 index 0000000000..4ffe4ee0c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-13.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.14-5-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-13.js", + + description: "Object.keys - own enumerable indexed data property of sparse array 'O' is defined in returned array", + + test: function testcase() { + var obj = [1, , 3, , 5]; + + Object.defineProperty(obj, 5, { + value: 7, + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, 10000, { + value: "ElementWithLargeIndex", + enumerable: true, + configurable: true + }); + + var arr = Object.keys(obj); + + var index; + var initValue = 0; + for (index = 0; index < 3; index++) { + if (arr[index] !== initValue.toString()) { + return false; + } + initValue += 2; + } + + if (arr.length !== 4 || arr[3] !== "10000") { + return false; + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-14.js new file mode 100644 index 0000000000..16192849f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-14.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.14-5-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-14.js", + + description: "Object.keys - own enumerable indexed accessor property of sparse array 'O' is defined in returned array", + + test: function testcase() { + var obj = [1, , 3, , 5]; + + Object.defineProperty(obj, "10000", { + get: function () { + return "ElementWithLargeIndex"; + }, + enumerable: true, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr[p] === "10000") { + return true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-15.js new file mode 100644 index 0000000000..04ab7a71e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-15.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.14-5-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-15.js", + + description: "Object.keys - own enumerable indexed data property of String object 'O' is defined in returned array", + + test: function testcase() { + var obj = new String("xyz"); + obj[-20] = -20; + obj[20] = 20; + + Object.defineProperty(obj, "prop", { + value: 1003, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var i = 0; i < arr.length; i++) { + if (!obj.hasOwnProperty(arr[i])) { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-16.js new file mode 100644 index 0000000000..db825d4e44 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-16.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.14-5-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-16.js", + + description: "Object.keys - own enumerable indexed accessor property of String object 'O' is defined in returned array", + + test: function testcase() { + var obj = new String("xyz"); + obj[-20] = -20; + obj[20] = 20; + + Object.defineProperty(obj, "prop1", { + get: function () { }, + enumerable: true, + configurable: true + }); + Object.defineProperty(obj, "prop2", { + get: function () { }, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var i = 0; i < arr.length; i++) { + if (!obj.hasOwnProperty(arr[i])) { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-2.js new file mode 100644 index 0000000000..0449050f64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-2.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.14-5-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-2.js", + + description: "Object.keys - own enumerable accessor property of 'O' is defined in returned array", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "prop", { + get: function () { + return 1003; + }, + enumerable: true, + configurable: true + }); + + var arr = Object.keys(obj); + + return arr.hasOwnProperty(0) && arr[0] === "prop"; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-3.js new file mode 100644 index 0000000000..bfa9435935 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-3.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.14-5-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-3.js", + + description: "Object.keys - non-enumerable own data property of 'O' is not defined in returned array", + + test: function testcase() { + var obj = { prop1: 1001, prop2: 1002 }; + + Object.defineProperty(obj, "prop3", { + value: 1003, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "prop4", { + value: 1004, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr.hasOwnProperty(p)) { + if (arr[p] === "prop4") { + return false; + } + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-4.js new file mode 100644 index 0000000000..86fabae009 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-4.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.14-5-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-4.js", + + description: "Object.keys - non-enumerable own accessor property of 'O' is not defined in returned array", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop1", { + get: function () { }, + enumerable: true, + configurable: true + }); + Object.defineProperty(obj, "prop2", { + get: function () { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(obj, "prop3", { + get: function () { }, + enumerable: true, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr.hasOwnProperty(p)) { + if (arr[p] === "prop2") { + return false; + } + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-5.js new file mode 100644 index 0000000000..5d72ff1053 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-5.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.14-5-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-5.js", + + description: "Object.keys - inherited enumerable data property of 'O' is not defined in returned array", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "inheritedProp", { + value: 1003, + enumerable: true, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + obj.prop = 1004; + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr[p] === "inheritedProp") { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-6.js new file mode 100644 index 0000000000..c3703232e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-6.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.14-5-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-6.js", + + description: "Object.keys - inherited enumerable accessor property of 'O' is not defined in returned array", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "inheritedProp", { + get: function () { + return 1003; + }, + enumerable: true, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + get: function () { + return 1004; + }, + enumerable: true, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr[p] === "inheritedProp") { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-7.js new file mode 100644 index 0000000000..ec40749008 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-7.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.14-5-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-7.js", + + description: "Object.keys - inherted enumerable data property that is over-ridden by non-enumerable own data property is not defined in returned array", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + value: 1003, + enumerable: true, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + value: 1004, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr[p] === "prop") { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-8.js new file mode 100644 index 0000000000..99b50bb0df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-8.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.14-5-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-8.js", + + description: "Object.keys - inherted enumerable data property that is over-ridden by non-enumerable own accessor property is not defined in returned array", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + value: 1003, + enumerable: true, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + get: function () { }, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr[p] === "prop") { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-9.js new file mode 100644 index 0000000000..dcbcf3dd89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-9.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.14-5-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-9.js", + + description: "Object.keys - inherted enumerable accessor property that is over-ridden by non-enumerable own data property is not defined in returned array", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function () { }, + enumerable: true, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + value: 1003, + enumerable: false, + configurable: true + }); + + var arr = Object.keys(obj); + + for (var p in arr) { + if (arr[p] === "prop") { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-1.js new file mode 100644 index 0000000000..5b2578f396 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-1.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: "15.2.3.14-5-a-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-1.js", + + description: "Object.keys - 'value' attribute of element in returned array is correct.", + + test: function testcase() { + var obj = { prop1: 1 }; + + var array = Object.keys(obj); + + var desc = Object.getOwnPropertyDescriptor(array, "0"); + + return desc.hasOwnProperty("value") && desc.value === "prop1"; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-2.js new file mode 100644 index 0000000000..3992709ecd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-2.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.14-5-a-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-2.js", + + description: "Object.keys - 'writable' attribute of element of returned array is correct", + + test: function testcase() { + var obj = { prop1: 100 }; + + var array = Object.keys(obj); + + try { + array[0] = "isWritable"; + + var desc = Object.getOwnPropertyDescriptor(array, "0"); + + return array[0] === "isWritable" && desc.hasOwnProperty("writable") && desc.writable === true; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-3.js new file mode 100644 index 0000000000..9ee843cb47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-3.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.14-5-a-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-3.js", + + description: "Object.keys - 'enumerable' attribute of element of returned array is correct", + + test: function testcase() { + var obj = { prop1: 100 }; + + var array = Object.keys(obj); + var desc = Object.getOwnPropertyDescriptor(array, "0"); + var result = false; + for (var index in array) { + if (obj.hasOwnProperty(array[index]) && array[index] === "prop1") { + result = true; + } + } + + return result && desc.hasOwnProperty("enumerable") && desc.enumerable === true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-4.js new file mode 100644 index 0000000000..e9de321387 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-4.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: "15.2.3.14-5-a-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-a-4.js", + + description: "Object.keys - Verify that 'configurable' attribute of element of returned array is correct", + + test: function testcase() { + var obj = { prop1: 100 }; + + var array = Object.keys(obj); + var desc = Object.getOwnPropertyDescriptor(array, "0"); + + delete array[0]; + + return typeof array[0] === "undefined" && desc.hasOwnProperty("configurable") && desc.configurable === true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-b-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-b-1.js new file mode 100644 index 0000000000..ed655f4eab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-b-1.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.14-5-b-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-5-b-1.js", + + description: "Object.keys - Verify that 'index' of returned array is ascend by 1", + + test: function testcase() { + var obj = { prop1: 100, prop2: 200, prop3: 300 }; + + var array = Object.keys(obj); + + var idx = 0; + for (var index in array) { + if (array.hasOwnProperty(index)) { + if (index !== idx.toString()) { + return false; + } + idx++; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-1.js new file mode 100644 index 0000000000..dd6404e792 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.14-6-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-1.js", + + description: "Object.keys - the order of elements in returned array is the same with the order of properties in 'O' (dense array)", + + test: function testcase() { + var denseArray = [1, 2, 3]; + + var tempArray = []; + for (var p in denseArray) { + if (denseArray.hasOwnProperty(p)) { + tempArray.push(p); + } + } + + var returnedArray = Object.keys(denseArray); + + for (var index in returnedArray) { + if (tempArray[index] !== returnedArray[index]) { + return false; + } + } + return true; + + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-2.js new file mode 100644 index 0000000000..3859f9b857 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-2.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.14-6-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-2.js", + + description: "Object.keys - the order of elements in returned array is the same with the order of properties in 'O' (sparse array)", + + test: function testcase() { + var sparseArray = [1, 2, , 4, , 6]; + + var tempArray = []; + for (var p in sparseArray) { + if (sparseArray.hasOwnProperty(p)) { + tempArray.push(p); + } + } + + var returnedArray = Object.keys(sparseArray); + + for (var index in returnedArray) { + if (tempArray[index] !== returnedArray[index]) { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-3.js new file mode 100644 index 0000000000..98f9c2b9b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-3.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.14-6-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-3.js", + + description: "Object.keys - the order of elements in returned array is the same with the order of properties in 'O' (String object)", + + test: function testcase() { + var str = new String("abc"); + + var tempArray = []; + for (var p in str) { + if (str.hasOwnProperty(p)) { + tempArray.push(p); + } + } + + var returnedArray = Object.keys(str); + + for (var index in returnedArray) { + if (tempArray[index] !== returnedArray[index]) { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-4.js new file mode 100644 index 0000000000..a9d899adaf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-4.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.14-6-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-4.js", + + description: "Object.keys - the order of elements in returned array is the same with the order of properties in 'O' (Arguments object)", + + test: function testcase() { + var func = function (a, b, c) { + return arguments; + }; + + var args = func(1, "b", false); + + var tempArray = []; + for (var p in args) { + if (args.hasOwnProperty(p)) { + tempArray.push(p); + } + } + + var returnedArray = Object.keys(args); + + for (var index in returnedArray) { + if (tempArray[index] !== returnedArray[index]) { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-5.js new file mode 100644 index 0000000000..707eb93d07 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-5.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.14-6-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-5.js", + + description: "Object.keys - the order of elements in returned array is the same with the order of properties in 'O' (any other built-in object)", + + test: function testcase() { + var obj = new Date(); + obj.prop1 = 100; + obj.prop2 = "prop2"; + + var tempArray = []; + for (var p in obj) { + if (obj.hasOwnProperty(p)) { + tempArray.push(p); + } + } + + var returnedArray = Object.keys(obj); + + for (var index in returnedArray) { + if (tempArray[index] !== returnedArray[index]) { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-6.js new file mode 100644 index 0000000000..2c0ecf9e62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-6.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.14-6-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.14/15.2.3.14-6-6.js", + + description: "Object.keys - the order of elements in returned array is the same with the order of properties in 'O' (global Object)", + + test: function testcase() { + var obj = fnGlobalObject(); + + var tempArray = []; + for (var p in obj) { + if (obj.hasOwnProperty(p)) { + tempArray.push(p); + } + } + + var returnedArray = Object.keys(obj); + + for (var index in returnedArray) { + if (tempArray[index] !== returnedArray[index]) { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.keys); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-1.js new file mode 100644 index 0000000000..3cc66e40b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-1.js @@ -0,0 +1,34 @@ +/// 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: "15.2.3.2-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-1.js", + +description: "Object.getPrototypeOf must exist as a function", + +test: function testcase() { + if (typeof(Object.getPrototypeOf) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-2.js new file mode 100644 index 0000000000..6450e9dfb5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-2.js", + +description: "Object.getPrototypeOf must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.getPrototypeOf.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-3.js new file mode 100644 index 0000000000..26ce20d37a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-3.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.2-0-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-0-3.js", + +description: "Object.getPrototypeOf must take 1 parameter", + +test: function testcase() { + try + { + Object.getPrototypeOf(); + } + catch(e) + { + if(e instanceof TypeError) + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-2.js new file mode 100644 index 0000000000..e05e9eaf66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-2.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: "15.2.3.2-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-2.js", + + description: "Object.getPrototypeOf throws TypeError if 'O' is null", + + test: function testcase() { + try { + Object.getPrototypeOf(null); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.js new file mode 100644 index 0000000000..e8f33239bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.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: "15.2.3.2-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-3.js", + + description: "Object.getPrototypeOf throws TypeError if 'O' is a boolean", + + test: function testcase() { + try { + Object.getPrototypeOf(true); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.js new file mode 100644 index 0000000000..3288276bda --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.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: "15.2.3.2-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1-4.js", + + description: "Object.getPrototypeOf throws TypeError if 'O' is a string", + + test: function testcase() { + try { + Object.getPrototypeOf("abc"); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.js new file mode 100644 index 0000000000..a6ba39d1f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.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: "15.2.3.2-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-1.js", + +description: "Object.getPrototypeOf throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.getPrototypeOf(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-1.js new file mode 100644 index 0000000000..02dc62bbbc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-1.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-1.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Boolean)", + +test: function testcase() { + if (Object.getPrototypeOf(Boolean) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-10.js new file mode 100644 index 0000000000..b26af5691b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-10.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-10", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-10.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (RegExp)", + +test: function testcase() { + if (Object.getPrototypeOf(RegExp) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-11.js new file mode 100644 index 0000000000..e8c680cdb8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-11.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-11", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-11.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Error)", + +test: function testcase() { + if (Object.getPrototypeOf(Error) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js new file mode 100644 index 0000000000..49e1ec018a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-12", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-12.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (EvalError)", + +test: function testcase() { + if (Object.getPrototypeOf(EvalError) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js new file mode 100644 index 0000000000..ec9b7e820a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-13", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-13.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (RangeError)", + +test: function testcase() { + if (Object.getPrototypeOf(RangeError) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js new file mode 100644 index 0000000000..8267ce1335 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-14", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-14.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (ReferenceError)", + +test: function testcase() { + if (Object.getPrototypeOf(ReferenceError) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js new file mode 100644 index 0000000000..a359d4bb42 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-15", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-15.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (SyntaxError)", + +test: function testcase() { + if (Object.getPrototypeOf(SyntaxError) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js new file mode 100644 index 0000000000..55fd850aa2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-16", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-16.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (TypeError)", + +test: function testcase() { + if (Object.getPrototypeOf(TypeError) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js new file mode 100644 index 0000000000..96bdc12abe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-17", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-17.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (URIError)", + +test: function testcase() { + if (Object.getPrototypeOf(URIError) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-18.js new file mode 100644 index 0000000000..cc3e282807 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-18.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-18", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-18.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (JSON)", + +test: function testcase() { + if (Object.getPrototypeOf(JSON) === Object.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-19.js new file mode 100644 index 0000000000..4ea32888fb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-19.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-19.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Object object)", + + test: function testcase() { + var obj = {}; + + return Object.getPrototypeOf(obj) === Object.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-2.js new file mode 100644 index 0000000000..4b76f1a0cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-2.js @@ -0,0 +1,50 @@ +/// 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. + +/* +Let 'x' be the return value from getPrototypeOf when called on d. +Then, x.isPrototypeOf(d) must be true. +*/ + + +ES5Harness.registerTest( { +id: "15.2.3.2-2-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-2.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (custom object)", + +test: function testcase() { + function base() {} + + function derived() {} + derived.prototype = new base(); + + var d = new derived(); + var x = Object.getPrototypeOf(d); + if (x.isPrototypeOf(d) === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-20.js new file mode 100644 index 0000000000..7145ac7e7e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-20.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.2-2-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-20.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Function Object)", + + test: function testcase() { + var obj = function (a, b) { + return a + b; + }; + + return Object.getPrototypeOf(obj) === Function.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-21.js new file mode 100644 index 0000000000..1fb6eaf698 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-21.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-21.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Array object)", + + test: function testcase() { + var arr = [1, 2, 3]; + + return Object.getPrototypeOf(arr) === Array.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-22.js new file mode 100644 index 0000000000..1578332e8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-22.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-22.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (String object)", + + test: function testcase() { + var obj = new String("abc"); + + return Object.getPrototypeOf(obj) === String.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-23.js new file mode 100644 index 0000000000..1b7fb8fad5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-23.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-23.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Boolean object)", + + test: function testcase() { + var obj = new Boolean(true); + + return Object.getPrototypeOf(obj) === Boolean.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-24.js new file mode 100644 index 0000000000..f6885edd68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-24.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-24.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Number object)", + + test: function testcase() { + var obj = new Number(-3); + + return Object.getPrototypeOf(obj) === Number.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-25.js new file mode 100644 index 0000000000..de9cdd1ec7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-25.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-25.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Date object)", + + test: function testcase() { + var obj = new Date(); + + return Object.getPrototypeOf(obj) === Date.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-26.js new file mode 100644 index 0000000000..341bdbce21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-26.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-26.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (RegExp object)", + + test: function testcase() { + var obj = new RegExp(); + + return Object.getPrototypeOf(obj) === RegExp.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-27.js new file mode 100644 index 0000000000..0ed60da4aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-27.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-27.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Error object)", + + test: function testcase() { + var obj = new Error(); + + return Object.getPrototypeOf(obj) === Error.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-28.js new file mode 100644 index 0000000000..2e3ff780cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-28.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: "15.2.3.2-2-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-28.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (the Arguments object)", + + test: function testcase() { + function fun() { + return arguments; + } + var obj = fun(1, true, 3); + + return Object.getPrototypeOf(obj) === Object.prototype; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-3.js new file mode 100644 index 0000000000..606651f9cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-3.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-3.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Object)", + +test: function testcase() { + if (Object.getPrototypeOf(Object) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-30.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-30.js new file mode 100644 index 0000000000..458e245043 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-30.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-30", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-30.js", + + description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (the global object)", + + test: function testcase() { + var proto = Object.getPrototypeOf(fnGlobalObject()); + + return proto.isPrototypeOf(fnGlobalObject()) === true; + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-31.js new file mode 100644 index 0000000000..a62b58f9e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-31.js @@ -0,0 +1,37 @@ +/// 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: "15.2.3.2-2-31", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-31.js", + + description: "Object.getPrototypeOf returns null", + + test: function testcase() { + + return (Object.getPrototypeOf(Object.prototype) === null); + }, + + precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-4.js new file mode 100644 index 0000000000..486423d3e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-4.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-4.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Function)", + +test: function testcase() { + if (Object.getPrototypeOf(Function) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-5.js new file mode 100644 index 0000000000..9b6c64504d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-5.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-5.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Array)", + +test: function testcase() { + if (Object.getPrototypeOf(Array) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-6.js new file mode 100644 index 0000000000..ea5afc3c6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-6.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-6", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-6.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (String)", + +test: function testcase() { + if (Object.getPrototypeOf(String) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-7.js new file mode 100644 index 0000000000..d7d83fbff3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-7.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-7", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-7.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Number)", + +test: function testcase() { + if (Object.getPrototypeOf(Number) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-8.js new file mode 100644 index 0000000000..44b2006c44 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-8.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-8", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-8.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Math)", + +test: function testcase() { + if (Object.getPrototypeOf(Math) === Object.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-9.js new file mode 100644 index 0000000000..0b2b5d5d5d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-9.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.2-2-9", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.2/15.2.3.2-2-9.js", + +description: "Object.getPrototypeOf returns the [[Prototype]] of its parameter (Date)", + +test: function testcase() { + if (Object.getPrototypeOf(Date) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-0-1.js new file mode 100644 index 0000000000..27bfcd3e74 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-0-1.js @@ -0,0 +1,34 @@ +/// 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: "15.2.3.3-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-0-1.js", + +description: "Object.getOwnPropertyDescriptor must exist as a function", + +test: function testcase() { + if (typeof(Object.getOwnPropertyDescriptor) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-0-2.js new file mode 100644 index 0000000000..b010be22ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.3-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-0-2.js", + +description: "Object.getOwnPropertyDescriptor must exist as a function taking 2 parameters", + +test: function testcase() { + if (Object.getOwnPropertyDescriptor.length === 2) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-1.js new file mode 100644 index 0000000000..b130bb8cdd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-1.js", + + description: "Object.getOwnPropertyDescriptor - TypeError is thrown when first param is undefined", + + test: function testcase() { + try { + Object.getOwnPropertyDescriptor(undefined, "foo"); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-2.js new file mode 100644 index 0000000000..429f41ba0a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-2.js", + + description: "Object.getOwnPropertyDescriptor - TypeError is thrown when first param is null", + + test: function testcase() { + try { + Object.getOwnPropertyDescriptor(null, "foo"); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js new file mode 100644 index 0000000000..e2a26a67ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-3.js", + + description: "Object.getOwnPropertyDescriptor - TypeError is thrown when first param is a boolean", + + test: function testcase() { + try { + Object.getOwnPropertyDescriptor(true, "foo"); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js new file mode 100644 index 0000000000..d6f33d8da1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1-4.js", + + description: "Object.getOwnPropertyDescriptor - TypeError is thrown when first param is a number", + + test: function testcase() { + try { + Object.getOwnPropertyDescriptor(-2, "foo"); + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.js new file mode 100644 index 0000000000..c4a9163186 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.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: "15.2.3.3-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-1.js", + +description: "Object.getOwnPropertyDescriptor throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.getOwnPropertyDescriptor(0, "foo"); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-1.js new file mode 100644 index 0000000000..5b8d6a239b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-1.js", + +description: "Object.getOwnPropertyDescriptor returns undefined for undefined property name", + +test: function testcase() { + var o = {}; + var desc = Object.getOwnPropertyDescriptor(o, undefined); + if (desc === undefined) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-10.js new file mode 100644 index 0000000000..4aa6efc1d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-10.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-10.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is -0)", + + test: function testcase() { + var obj = { "0": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, -0); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-11.js new file mode 100644 index 0000000000..aeb965747a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-11.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-11.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is positive number)", + + test: function testcase() { + var obj = { "30": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 30); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-12.js new file mode 100644 index 0000000000..1a6fc4c756 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-12.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-12.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is negative number)", + + test: function testcase() { + var obj = { "-20": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, -20); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-13.js new file mode 100644 index 0000000000..a6a93e7cc0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-13.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-13.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is Infinity)", + + test: function testcase() { + var obj = { "Infinity": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, Infinity); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-14.js new file mode 100644 index 0000000000..f635151ff3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-14.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-14.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is +Infinity)", + + test: function testcase() { + var obj = { "Infinity": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, +Infinity); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-15.js new file mode 100644 index 0000000000..df7e712eed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-15.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-15.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is -Infinity)", + + test: function testcase() { + var obj = { "-Infinity": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, -Infinity); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-16.js new file mode 100644 index 0000000000..2384c03d40 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-16.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-16.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 1(following 20 zeros))", + + test: function testcase() { + var obj = { "100000000000000000000": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 100000000000000000000); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-17.js new file mode 100644 index 0000000000..78b154fa97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-17.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-17.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 1(following 21 zeros))", + + test: function testcase() { + var obj = { "1e+21": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 1000000000000000000000); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-18.js new file mode 100644 index 0000000000..5e9648abef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-18.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-18.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 1(following 22 zeros))", + + test: function testcase() { + var obj = { "1e+22": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 10000000000000000000000); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-19.js new file mode 100644 index 0000000000..65b1d73a9e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-19.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-19.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 1e+20)", + + test: function testcase() { + var obj = { "100000000000000000000": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 1e+20); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-2.js new file mode 100644 index 0000000000..680af96663 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-2.js", + +description: "Object.getOwnPropertyDescriptor returns undefined for null property name", + +test: function testcase() { + var o = {}; + var desc = Object.getOwnPropertyDescriptor(o, null); + if (desc === undefined) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-20.js new file mode 100644 index 0000000000..37f4dc0870 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-20.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-20.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to string (value is 1e+21)", + + test: function testcase() { + var obj = { "1e+21": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 1e+21); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-21.js new file mode 100644 index 0000000000..2312cbd480 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-21.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-21.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 1e+22)", + + test: function testcase() { + var obj = { "1e+22": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 1e+22); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-22.js new file mode 100644 index 0000000000..accb380a81 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-22.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-22.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 0.000001)", + + test: function testcase() { + var obj = { "0.000001": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 0.000001); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-23.js new file mode 100644 index 0000000000..957a21aea2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-23.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-23.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 0.0000001)", + + test: function testcase() { + var obj = { "1e-7": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 0.0000001); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-24.js new file mode 100644 index 0000000000..955f67e207 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-24.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-24.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 0.00000001)", + + test: function testcase() { + var obj = { "1e-8": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 0.00000001); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-25.js new file mode 100644 index 0000000000..b76af6eb1d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-25.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-25.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 1e-7)", + + test: function testcase() { + var obj = { "1e-7": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 1e-7); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-26.js new file mode 100644 index 0000000000..0ee1a57d63 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-26.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-26.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 1e-6)", + + test: function testcase() { + var obj = { "0.000001": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 1e-6); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-27.js new file mode 100644 index 0000000000..7b621b1dbe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-27.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-27.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 1e-5)", + + test: function testcase() { + var obj = { "0.00001": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 1e-5); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-28.js new file mode 100644 index 0000000000..74a9273df9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-28.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-28.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is an integer that converts to a string (value is 123)", + + test: function testcase() { + var obj = { "123": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 123); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-29.js new file mode 100644 index 0000000000..8a6e56fc4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-29.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-29", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-29.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a decimal that converts to a string (value is 123.456)", + + test: function testcase() { + var obj = { "123.456": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 123.456); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-3.js new file mode 100644 index 0000000000..e23d33c3a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-3.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: "15.2.3.3-2-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-3.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is undefined", + + test: function testcase() { + var obj = { "undefined": 1 }; + + var desc1 = Object.getOwnPropertyDescriptor(obj, undefined); + var desc2 = Object.getOwnPropertyDescriptor(obj, "undefined"); + + return desc1.value === 1 && desc2.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-30.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-30.js new file mode 100644 index 0000000000..c153425aca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-30.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-30", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-30.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 100000000000000000000.123)", + + test: function testcase() { + var obj = { "100000000000000000000": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 100000000000000000000.123); + + return typeof desc !== "undefined" && desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-31.js new file mode 100644 index 0000000000..ef3e4855ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-31.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-31", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-31.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 123.1234567)", + + test: function testcase() { + var obj = { "123.1234567": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 123.1234567); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-32.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-32.js new file mode 100644 index 0000000000..eeb484acd5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-32.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-32", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-32.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is applied to an empty string ", + + test: function testcase() { + var obj = { "": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, ""); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-33.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-33.js new file mode 100644 index 0000000000..c742fd7814 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-33.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-33", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-33.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is applied to string 'AB\n\\cd' ", + + test: function testcase() { + var obj = { "AB\n\\cd": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, "AB\n\\cd"); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-34.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-34.js new file mode 100644 index 0000000000..0a15ccc8cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-34.js @@ -0,0 +1,40 @@ +// 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: "15.2.3.3-2-34", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-34.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is applied to string 'undefined' ", + + test: function testcase() { + var obj = { "undefined": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, "undefined"); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-35.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-35.js new file mode 100644 index 0000000000..52162a3a0d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-35.js @@ -0,0 +1,40 @@ +// 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: "15.2.3.3-2-35", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-35.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is applied to string 'null' ", + + test: function testcase() { + var obj = { "null": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, "null"); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-36.js new file mode 100644 index 0000000000..f51fa9f44b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-36.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-36", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-36.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is applied to string '123¦Á¦Â¦Ðcd' ", + + test: function testcase() { + var obj = { "123¦Á¦Â¦Ðcd": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, "123¦Á¦Â¦Ðcd"); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-37.js new file mode 100644 index 0000000000..d7e2be0bcd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-37.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-37", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-37.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is applied to string '1' ", + + test: function testcase() { + var obj = { "1": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 1); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-38.js new file mode 100644 index 0000000000..75336850c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-38.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-38", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-38.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is an array that converts to a string", + + test: function testcase() { + var obj = { "1": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, [1]); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-39.js new file mode 100644 index 0000000000..6d7ec7add9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-39.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-39", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-39.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a String Object that converts to a string", + + test: function testcase() { + var obj = { "Hello": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, new String("Hello")); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-4.js new file mode 100644 index 0000000000..1255cf83d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-4.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-4.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is null that converts to string 'null'", + + test: function testcase() { + var obj = { "null": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, null); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-40.js new file mode 100644 index 0000000000..7b4334c411 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-40.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-40", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-40.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a Boolean Object that converts to a string", + + test: function testcase() { + var obj = { "true": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, new Boolean(true)); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-41.js new file mode 100644 index 0000000000..99f516430a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-41.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-41", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-41.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a Number Object that converts to a string", + + test: function testcase() { + var obj = { "123": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, new Number(123)); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-42.js new file mode 100644 index 0000000000..3c24366872 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-42.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.3-2-42", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-42.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is an object which has an own toString method", + + test: function testcase() { + var obj = { "abc": 1 }; + + var ownProp = { + toString: function () { + return "abc"; + } + }; + + var desc = Object.getOwnPropertyDescriptor(obj, ownProp); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-43.js new file mode 100644 index 0000000000..03b6a9f6bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-43.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.3-2-43", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-43.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is an object which has an own valueOf method", + + test: function testcase() { + var obj = { "[object Object]": 1, "abc" : 2 }; + + var ownProp = { + valueOf: function () { + return "abc"; + } + }; + + var desc = Object.getOwnPropertyDescriptor(obj, ownProp); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-44.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-44.js new file mode 100644 index 0000000000..c6f8e2c29c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-44.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.3-2-44", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-44.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is an object that has an own toString method that returns an object and toValue method that returns a primitive value", + + test: function testcase() { + var obj = { "abc": 1 }; + var valueOfAccessed = false; + var toStringAccessed = false; + + var ownProp = { + toString: function () { + toStringAccessed = true; + return {}; + }, + valueOf: function () { + valueOfAccessed = true; + return "abc"; + } + }; + + var desc = Object.getOwnPropertyDescriptor(obj, ownProp); + + return desc.value === 1 && valueOfAccessed && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-45.js new file mode 100644 index 0000000000..6c15d0e015 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-45.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.3-2-45", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-45.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is an object which has an own toString and valueOf method", + + test: function testcase() { + var obj = { "bbq": 1, "abc": 2 }; + var valueOfAccessed = false; + + var ownProp = { + toString: function () { + return "bbq"; + }, + valueOf: function () { + valueOfAccessed = true; + return "abc"; + } + }; + + var desc = Object.getOwnPropertyDescriptor(obj, ownProp); + + return desc.value === 1 && !valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-46.js new file mode 100644 index 0000000000..46a55d8355 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-46.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.3-2-46", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-46.js", + + description: "Object.getOwnPropertyDescriptor - TypeError exception was thrown when 'P' is an object that both toString and valueOf wouldn't return primitive value", + + test: function testcase() { + var obj = { "1": 1 }; + var toStringAccessed = false; + var valueOfAccessed = false; + + var ownProp = { + toString: function () { + toStringAccessed = true; + return [1]; + }, + valueOf: function () { + valueOfAccessed = true; + return [1]; + } + }; + + try { + Object.getOwnPropertyDescriptor(obj, ownProp); + return false; + } catch (e) { + return toStringAccessed && valueOfAccessed && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-47.js new file mode 100644 index 0000000000..ec82cdc429 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-47.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.3-2-47", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-47.js", + + description: "Object.getOwnPropertyDescriptor - uses inherited toString method when 'P' is an object with an own valueOf and inherited toString methods", + + test: function testcase() { + var proto = {}; + var valueOfAccessed = false; + var toStringAccessed = false; + + proto.toString = function () { + toStringAccessed = true; + return "test"; + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.valueOf = function () { + valueOfAccessed = true; + return "10"; + }; + var obj = { "10": "length1", "test": "length2" }; + var desc = Object.getOwnPropertyDescriptor(obj, child); + + return desc.value === "length2" && toStringAccessed && !valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-5.js new file mode 100644 index 0000000000..cfd7bdecca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-5.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-5.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a boolean whose value is false", + + test: function testcase() { + var obj = { "false": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, false); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-6.js new file mode 100644 index 0000000000..9248919c56 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-6.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-6.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a boolean whose value is true", + + test: function testcase() { + var obj = { "true": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, true); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-7.js new file mode 100644 index 0000000000..e0e4f00569 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-7.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-7.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is NaN)", + + test: function testcase() { + var obj = { "NaN": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, NaN); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-8.js new file mode 100644 index 0000000000..2215c24f7e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-8.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-8.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is 0)", + + test: function testcase() { + var obj = { "0": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, 0); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-9.js new file mode 100644 index 0000000000..9ce5fa03e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-9.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-2-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-2-9.js", + + description: "Object.getOwnPropertyDescriptor - argument 'P' is a number that converts to a string (value is +0)", + + test: function testcase() { + var obj = { "0": 1 }; + + var desc = Object.getOwnPropertyDescriptor(obj, +0); + + return desc.value === 1; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-1.js new file mode 100644 index 0000000000..ef7f99a1dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-1.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.3-3-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-1.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is own data property", + + test: function testcase() { + + var obj = { + property: "ownDataProperty" + }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.value === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-10.js new file mode 100644 index 0000000000..8603dd1562 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-10.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.3-3-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-10.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is not an existing property", + + test: function testcase() { + + var obj = { + property: "ownDataProperty" + }; + + var desc = Object.getOwnPropertyDescriptor(obj, "propertyNonExist"); + + return typeof desc === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-13.js new file mode 100644 index 0000000000..f9cf5dbf84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-13.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.3-3-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-13.js", + + description: "Object.getOwnPropertyDescriptor applied to the Arguments object which implements its own property get method", + + test: function testcase() { + + var arg = (function () { + return arguments; + }("ownProperty", true)); + + var desc = Object.getOwnPropertyDescriptor(arg, "0"); + + return desc.value === "ownProperty" && desc.writable === true && desc.enumerable === true && desc.configurable === true; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-14.js new file mode 100644 index 0000000000..6de9375152 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-14.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: "15.2.3.3-3-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-14.js", + + description: "Object.getOwnPropertyDescriptor applied to a String object which implements its own property get method", + + test: function testcase() { + + var str = new String("123"); + + var desc = Object.getOwnPropertyDescriptor(str, "2"); + + return desc.value === "3"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-15.js new file mode 100644 index 0000000000..d0fb91b055 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-15.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.3-3-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-15.js", + + description: "Object.getOwnPropertyDescriptor applied to a Function object which implements its own property get method", + + test: function testcase() { + + var obj = function (a, b) { + return a + b; + }; + obj[1] = "ownProperty"; + + var desc = Object.getOwnPropertyDescriptor(obj, "1"); + + return desc.value === "ownProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-2.js new file mode 100644 index 0000000000..31d51eb1f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-2.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.3-3-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-2.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is inherited data property", + + test: function testcase() { + + var proto = { + property: "inheritedDataProperty" + }; + + var Con = function () { }; + Con.ptototype = proto; + + var child = new Con(); + + var desc = Object.getOwnPropertyDescriptor(child, "property"); + + return typeof desc === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-3.js new file mode 100644 index 0000000000..520572067c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-3.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.3-3-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-3.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is own data property that overrides an inherited data property", + + test: function testcase() { + + var proto = { + property: "inheritedDataProperty" + }; + + var Con = function () { }; + Con.ptototype = proto; + + var child = new Con(); + child.property = "ownDataProperty"; + + var desc = Object.getOwnPropertyDescriptor(child, "property"); + + return desc.value === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-4.js new file mode 100644 index 0000000000..38158eb0c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-4.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.3-3-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-4.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is own data property that overrides an inherited accessor property", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "property", { + get: function () { + return "inheritedDataProperty"; + }, + configurable: true + }); + + var Con = function () { }; + Con.ptototype = proto; + + var child = new Con(); + Object.defineProperty(child, "property", { + value: "ownDataProperty", + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(child, "property"); + + return desc.value === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-5.js new file mode 100644 index 0000000000..d0b4391427 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-5.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.3-3-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-5.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is own accessor property", + + test: function testcase() { + + var obj = {}; + var fun = function () { + return "ownAccessorProperty"; + }; + Object.defineProperty(obj, "property", { + get: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.get === fun; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-6.js new file mode 100644 index 0000000000..2610d8c503 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-6.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: "15.2.3.3-3-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-6.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is inherited accessor property", + + test: function testcase() { + + var proto = {}; + var fun = function () { + return "ownAccessorProperty"; + }; + Object.defineProperty(proto, "property", { + get: fun, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + var desc = Object.getOwnPropertyDescriptor(child, "property"); + + return typeof desc === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-7.js new file mode 100644 index 0000000000..13da00c609 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-7.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.3-3-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-7.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is own accessor property that overrides an inherited data property", + + test: function testcase() { + + var proto = { + property: "inheritedDataProperty" + }; + + var Con = function () { }; + Con.ptototype = proto; + + var child = new Con(); + var fun = function () { + return "ownAccessorProperty"; + }; + Object.defineProperty(child, "property", { + get: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(child, "property"); + + return desc.get === fun; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-8.js new file mode 100644 index 0000000000..b47bde25af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-8.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.3-3-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-8.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is own accessor property that overrides an inherited accessor property", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "property", { + get: function () { + return "inheritedAccessorProperty"; + }, + configurable: true + }); + + var Con = function () { }; + Con.ptototype = proto; + + var child = new Con(); + var fun = function () { + return "ownAccessorProperty"; + }; + Object.defineProperty(child, "property", { + get: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(child, "property"); + + return desc.get === fun; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-9.js new file mode 100644 index 0000000000..ff22efc8f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-9.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.3-3-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-3-9.js", + + description: "Object.getOwnPropertyDescriptor - 'P' is own accessor property without a get function", + + test: function testcase() { + + var obj = {}; + var fun = function () { }; + Object.defineProperty(obj, "property", { + set: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.set === fun; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-1.js new file mode 100644 index 0000000000..ef7a09e0f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.3-4-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-1.js", + +description: "Object.getOwnPropertyDescriptor returns an object representing a data desc for valid data valued properties", + +test: function testcase() { + var o = {}; + o["foo"] = 101; + + var desc = Object.getOwnPropertyDescriptor(o, "foo"); + if (desc.value === 101 && + desc.enumerable === true && + desc.writable === true && + desc.configurable === true && + !desc.hasOwnProperty("get") && + !desc.hasOwnProperty("set")) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-10.js new file mode 100644 index 0000000000..960e13a7ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-10.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: "15.2.3.3-4-10", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-10.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.decodeURIComponent)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "decodeURIComponent"); + if (desc.value === global.decodeURIComponent && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-100.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-100.js new file mode 100644 index 0000000000..51b2b2f16b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-100.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: "15.2.3.3-4-100", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-100.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.atan2)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "atan2"); + if (desc.value === Math.atan2 && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-101.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-101.js new file mode 100644 index 0000000000..e36db0b67f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-101.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: "15.2.3.3-4-101", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-101.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.ceil)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "ceil"); + if (desc.value === Math.ceil && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-102.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-102.js new file mode 100644 index 0000000000..e982caa3f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-102.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: "15.2.3.3-4-102", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-102.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.cos)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "cos"); + if (desc.value === Math.cos && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-103.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-103.js new file mode 100644 index 0000000000..90434835ab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-103.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: "15.2.3.3-4-103", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-103.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.exp)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "exp"); + if (desc.value === Math.exp && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-104.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-104.js new file mode 100644 index 0000000000..aeb61877b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-104.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: "15.2.3.3-4-104", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-104.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.floor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "floor"); + if (desc.value === Math.floor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-105.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-105.js new file mode 100644 index 0000000000..92aa9ed727 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-105.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: "15.2.3.3-4-105", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-105.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.log)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "log"); + if (desc.value === Math.log && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-106.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-106.js new file mode 100644 index 0000000000..c88e273355 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-106.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: "15.2.3.3-4-106", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-106.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.max)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "max"); + if (desc.value === Math.max && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-107.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-107.js new file mode 100644 index 0000000000..65526d5139 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-107.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: "15.2.3.3-4-107", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-107.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.min)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "min"); + if (desc.value === Math.min && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-108.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-108.js new file mode 100644 index 0000000000..b88fda14dc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-108.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: "15.2.3.3-4-108", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-108.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.pow)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "pow"); + if (desc.value === Math.pow && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-109.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-109.js new file mode 100644 index 0000000000..64e618ef03 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-109.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: "15.2.3.3-4-109", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-109.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.random)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "random"); + if (desc.value === Math.random && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-11.js new file mode 100644 index 0000000000..9124b5157c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-11.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: "15.2.3.3-4-11", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-11.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.encodeURIComponent)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "encodeURIComponent"); + if (desc.value === global.encodeURIComponent && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-110.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-110.js new file mode 100644 index 0000000000..7cb3b292a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-110.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: "15.2.3.3-4-110", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-110.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.round)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "round"); + if (desc.value === Math.round && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-111.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-111.js new file mode 100644 index 0000000000..a2c7310e4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-111.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: "15.2.3.3-4-111", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-111.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.sin)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "sin"); + if (desc.value === Math.sin && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-112.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-112.js new file mode 100644 index 0000000000..084698770b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-112.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: "15.2.3.3-4-112", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-112.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.sqrt)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "sqrt"); + if (desc.value === Math.sqrt && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-113.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-113.js new file mode 100644 index 0000000000..40e7cebab0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-113.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: "15.2.3.3-4-113", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-113.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.tan)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "tan"); + if (desc.value === Math.tan && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-114.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-114.js new file mode 100644 index 0000000000..d84f4b9248 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-114.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: "15.2.3.3-4-114", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-114.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.parse)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date, "parse"); + if (desc.value === Date.parse && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-115.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-115.js new file mode 100644 index 0000000000..ee5e29808f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-115.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: "15.2.3.3-4-115", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-115.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.UTC)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date, "UTC"); + if (desc.value === Date.UTC && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-116.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-116.js new file mode 100644 index 0000000000..c1f9841801 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-116.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: "15.2.3.3-4-116", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-116.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "constructor"); + if (desc.value === Date.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-117.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-117.js new file mode 100644 index 0000000000..0273c68af2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-117.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: "15.2.3.3-4-117", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-117.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getTime)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getTime"); + if (desc.value === Date.prototype.getTime && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-118.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-118.js new file mode 100644 index 0000000000..7b80eb896e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-118.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: "15.2.3.3-4-118", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-118.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getTimezoneOffset)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getTimezoneOffset"); + if (desc.value === Date.prototype.getTimezoneOffset && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-119.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-119.js new file mode 100644 index 0000000000..7ecf206db1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-119.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: "15.2.3.3-4-119", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-119.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getYear)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getYear"); + if (desc.value === Date.prototype.getYear && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-12.js new file mode 100644 index 0000000000..6725d1afe6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-12.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: "15.2.3.3-4-12", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-12.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.escape)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "escape"); + if (desc.value === global.escape && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-120.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-120.js new file mode 100644 index 0000000000..4a768819b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-120.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: "15.2.3.3-4-120", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-120.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getFullYear)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getFullYear"); + if (desc.value === Date.prototype.getFullYear && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-121.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-121.js new file mode 100644 index 0000000000..dfa3888d84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-121.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: "15.2.3.3-4-121", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-121.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getMonth)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getMonth"); + if (desc.value === Date.prototype.getMonth && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-122.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-122.js new file mode 100644 index 0000000000..8a50ac81e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-122.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: "15.2.3.3-4-122", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-122.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getDate)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getDate"); + if (desc.value === Date.prototype.getDate && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-123.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-123.js new file mode 100644 index 0000000000..e926c020ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-123.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: "15.2.3.3-4-123", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-123.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getDay)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getDay"); + if (desc.value === Date.prototype.getDay && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-124.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-124.js new file mode 100644 index 0000000000..d40660d1f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-124.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: "15.2.3.3-4-124", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-124.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getHours)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getHours"); + if (desc.value === Date.prototype.getHours && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-125.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-125.js new file mode 100644 index 0000000000..36f5884ee6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-125.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: "15.2.3.3-4-125", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-125.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getMinutes)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getMinutes"); + if (desc.value === Date.prototype.getMinutes && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-126.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-126.js new file mode 100644 index 0000000000..d495cc4084 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-126.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: "15.2.3.3-4-126", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-126.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getSeconds)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getSeconds"); + if (desc.value === Date.prototype.getSeconds && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-127.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-127.js new file mode 100644 index 0000000000..b66b9eda2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-127.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: "15.2.3.3-4-127", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-127.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getMilliseconds)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getMilliseconds"); + if (desc.value === Date.prototype.getMilliseconds && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-128.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-128.js new file mode 100644 index 0000000000..31cb53eaf2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-128.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: "15.2.3.3-4-128", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-128.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getUTCFullYear)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCFullYear"); + if (desc.value === Date.prototype.getUTCFullYear && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-129.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-129.js new file mode 100644 index 0000000000..ad332c81f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-129.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: "15.2.3.3-4-129", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-129.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getUTCMonth)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCMonth"); + if (desc.value === Date.prototype.getUTCMonth && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-13.js new file mode 100644 index 0000000000..af10969b65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-13.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: "15.2.3.3-4-13", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-13.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.unescape)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "unescape"); + if (desc.value === global.unescape && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-130.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-130.js new file mode 100644 index 0000000000..ac1e39469d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-130.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: "15.2.3.3-4-130", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-130.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getUTCDate)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCDate"); + if (desc.value === Date.prototype.getUTCDate && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-131.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-131.js new file mode 100644 index 0000000000..49d3904aaf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-131.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: "15.2.3.3-4-131", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-131.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getUTCDay)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCDay"); + if (desc.value === Date.prototype.getUTCDay && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-132.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-132.js new file mode 100644 index 0000000000..91a2bcb27d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-132.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: "15.2.3.3-4-132", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-132.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getUTCHours)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCHours"); + if (desc.value === Date.prototype.getUTCHours && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-133.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-133.js new file mode 100644 index 0000000000..e73888196b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-133.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: "15.2.3.3-4-133", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-133.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getUTCMinutes)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCMinutes"); + if (desc.value === Date.prototype.getUTCMinutes && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-134.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-134.js new file mode 100644 index 0000000000..68ec675384 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-134.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: "15.2.3.3-4-134", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-134.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getUTCSeconds)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCSeconds"); + if (desc.value === Date.prototype.getUTCSeconds && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-135.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-135.js new file mode 100644 index 0000000000..72a8bf5793 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-135.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: "15.2.3.3-4-135", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-135.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.getUTCMilliseconds)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "getUTCMilliseconds"); + if (desc.value === Date.prototype.getUTCMilliseconds && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-136.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-136.js new file mode 100644 index 0000000000..77b9b10503 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-136.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: "15.2.3.3-4-136", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-136.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setTime)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setTime"); + if (desc.value === Date.prototype.setTime && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-137.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-137.js new file mode 100644 index 0000000000..b7298cbf64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-137.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: "15.2.3.3-4-137", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-137.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setYear)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setYear"); + if (desc.value === Date.prototype.setYear && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-138.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-138.js new file mode 100644 index 0000000000..b39fb1528a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-138.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: "15.2.3.3-4-138", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-138.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setFullYear)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setFullYear"); + if (desc.value === Date.prototype.setFullYear && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-139.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-139.js new file mode 100644 index 0000000000..d858127c05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-139.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: "15.2.3.3-4-139", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-139.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setMonth)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setMonth"); + if (desc.value === Date.prototype.setMonth && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-14.js new file mode 100644 index 0000000000..997ff5d488 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-14.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: "15.2.3.3-4-14", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-14.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.getPrototypeOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "getPrototypeOf"); + if (desc.value === Object.getPrototypeOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-140.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-140.js new file mode 100644 index 0000000000..0cc04867c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-140.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: "15.2.3.3-4-140", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-140.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setDate)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setDate"); + if (desc.value === Date.prototype.setDate && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-141.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-141.js new file mode 100644 index 0000000000..3836367927 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-141.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: "15.2.3.3-4-141", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-141.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setHours)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setHours"); + if (desc.value === Date.prototype.setHours && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-142.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-142.js new file mode 100644 index 0000000000..40d23a33e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-142.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: "15.2.3.3-4-142", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-142.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setMinutes)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setMinutes"); + if (desc.value === Date.prototype.setMinutes && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-143.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-143.js new file mode 100644 index 0000000000..f1928388e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-143.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: "15.2.3.3-4-143", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-143.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setSeconds)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setSeconds"); + if (desc.value === Date.prototype.setSeconds && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-144.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-144.js new file mode 100644 index 0000000000..be4e0e9f3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-144.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: "15.2.3.3-4-144", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-144.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setMilliseconds)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setMilliseconds"); + if (desc.value === Date.prototype.setMilliseconds && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-145.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-145.js new file mode 100644 index 0000000000..911e52f9ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-145.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: "15.2.3.3-4-145", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-145.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setUTCFullYear)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCFullYear"); + if (desc.value === Date.prototype.setUTCFullYear && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-146.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-146.js new file mode 100644 index 0000000000..a613062d33 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-146.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: "15.2.3.3-4-146", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-146.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setUTCMonth)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCMonth"); + if (desc.value === Date.prototype.setUTCMonth && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-147.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-147.js new file mode 100644 index 0000000000..bfa3f2f9ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-147.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: "15.2.3.3-4-147", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-147.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setUTCDate)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCDate"); + if (desc.value === Date.prototype.setUTCDate && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-148.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-148.js new file mode 100644 index 0000000000..f0d5c805c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-148.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: "15.2.3.3-4-148", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-148.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setUTCHours)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCHours"); + if (desc.value === Date.prototype.setUTCHours && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-149.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-149.js new file mode 100644 index 0000000000..ef25c3f384 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-149.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: "15.2.3.3-4-149", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-149.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setUTCMinutes)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCMinutes"); + if (desc.value === Date.prototype.setUTCMinutes && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-15.js new file mode 100644 index 0000000000..a963e8ac85 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-15.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: "15.2.3.3-4-15", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-15.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.getOwnPropertyDescriptor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "getOwnPropertyDescriptor"); + if (desc.value === Object.getOwnPropertyDescriptor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-150.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-150.js new file mode 100644 index 0000000000..68ca703103 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-150.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: "15.2.3.3-4-150", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-150.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setUTCSeconds)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCSeconds"); + if (desc.value === Date.prototype.setUTCSeconds && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-151.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-151.js new file mode 100644 index 0000000000..877d514e96 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-151.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: "15.2.3.3-4-151", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-151.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.setUTCMilliseconds)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "setUTCMilliseconds"); + if (desc.value === Date.prototype.setUTCMilliseconds && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-152.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-152.js new file mode 100644 index 0000000000..d4859c0491 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-152.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: "15.2.3.3-4-152", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-152.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toLocaleString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toLocaleString"); + if (desc.value === Date.prototype.toLocaleString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-153.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-153.js new file mode 100644 index 0000000000..16ab486cb0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-153.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: "15.2.3.3-4-153", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-153.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toString"); + if (desc.value === Date.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-154.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-154.js new file mode 100644 index 0000000000..a01eeb85ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-154.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: "15.2.3.3-4-154", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-154.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toUTCString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toUTCString"); + if (desc.value === Date.prototype.toUTCString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-155.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-155.js new file mode 100644 index 0000000000..3dc0b762e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-155.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: "15.2.3.3-4-155", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-155.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toGMTString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toGMTString"); + if (desc.value === Date.prototype.toGMTString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-156.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-156.js new file mode 100644 index 0000000000..8b0ff0bd5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-156.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: "15.2.3.3-4-156", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-156.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toTimeString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toTimeString"); + if (desc.value === Date.prototype.toTimeString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-157.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-157.js new file mode 100644 index 0000000000..6ba84bc5fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-157.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: "15.2.3.3-4-157", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-157.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toDateString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toDateString"); + if (desc.value === Date.prototype.toDateString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-158.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-158.js new file mode 100644 index 0000000000..ffbf4efec4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-158.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: "15.2.3.3-4-158", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-158.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toLocaleDateString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toLocaleDateString"); + if (desc.value === Date.prototype.toLocaleDateString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-159.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-159.js new file mode 100644 index 0000000000..8cecf61227 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-159.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: "15.2.3.3-4-159", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-159.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toLocaleTimeString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toLocaleTimeString"); + if (desc.value === Date.prototype.toLocaleTimeString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-16.js new file mode 100644 index 0000000000..f08e4a8e16 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-16.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: "15.2.3.3-4-16", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-16.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.getOwnPropertyNames)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "getOwnPropertyNames"); + if (desc.value === Object.getOwnPropertyNames && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-160.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-160.js new file mode 100644 index 0000000000..2877eb6e91 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-160.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: "15.2.3.3-4-160", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-160.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.valueOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "valueOf"); + if (desc.value === Date.prototype.valueOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-161.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-161.js new file mode 100644 index 0000000000..b285e9a502 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-161.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: "15.2.3.3-4-161", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-161.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toISOString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toISOString"); + if (desc.value === Date.prototype.toISOString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-162.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-162.js new file mode 100644 index 0000000000..850d42e4be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-162.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: "15.2.3.3-4-162", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-162.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Date.prototype.toJSON)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toJSON"); + if (desc.value === Date.prototype.toJSON && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-163.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-163.js new file mode 100644 index 0000000000..a300d3921d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-163.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: "15.2.3.3-4-163", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-163.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (RegExp.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "constructor"); + if (desc.value === RegExp.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-164.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-164.js new file mode 100644 index 0000000000..3bb0fee23f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-164.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: "15.2.3.3-4-164", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-164.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (RegExp.prototype.compile)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "compile"); + if (desc.value === RegExp.prototype.compile && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-165.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-165.js new file mode 100644 index 0000000000..a9973a1991 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-165.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: "15.2.3.3-4-165", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-165.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (RegExp.prototype.exec)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "exec"); + if (desc.value === RegExp.prototype.exec && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-166.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-166.js new file mode 100644 index 0000000000..0946f3c48e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-166.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: "15.2.3.3-4-166", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-166.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (RegExp.prototype.test)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "test"); + if (desc.value === RegExp.prototype.test && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-167.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-167.js new file mode 100644 index 0000000000..9f5b072d77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-167.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: "15.2.3.3-4-167", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-167.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (RegExp.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "toString"); + if (desc.value === RegExp.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-168.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-168.js new file mode 100644 index 0000000000..05761d4c5d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-168.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: "15.2.3.3-4-168", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-168.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Error.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Error.prototype, "constructor"); + if (desc.value === Error.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-169.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-169.js new file mode 100644 index 0000000000..32c65e7989 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-169.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: "15.2.3.3-4-169", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-169.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Error.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Error.prototype, "toString"); + if (desc.value === Error.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-17.js new file mode 100644 index 0000000000..bba6888e2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-17.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: "15.2.3.3-4-17", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-17.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.create)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "create"); + if (desc.value === Object.create && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-170.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-170.js new file mode 100644 index 0000000000..d59a21b9e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-170.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: "15.2.3.3-4-170", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-170.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (EvalError.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(EvalError.prototype, "constructor"); + if (desc.value === EvalError.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-171.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-171.js new file mode 100644 index 0000000000..75c0ae8a10 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-171.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: "15.2.3.3-4-171", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-171.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (RangeError.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RangeError.prototype, "constructor"); + if (desc.value === RangeError.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-172.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-172.js new file mode 100644 index 0000000000..381faa5cc2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-172.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: "15.2.3.3-4-172", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-172.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (ReferenceError.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(ReferenceError.prototype, "constructor"); + if (desc.value === ReferenceError.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-173.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-173.js new file mode 100644 index 0000000000..65b94c9471 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-173.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: "15.2.3.3-4-173", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-173.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (SyntaxError.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(SyntaxError.prototype, "constructor"); + if (desc.value === SyntaxError.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-174.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-174.js new file mode 100644 index 0000000000..1d7af99c60 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-174.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: "15.2.3.3-4-174", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-174.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (TypeError.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(TypeError.prototype, "constructor"); + if (desc.value === TypeError.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-175.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-175.js new file mode 100644 index 0000000000..388b5d6205 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-175.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: "15.2.3.3-4-175", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-175.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (URIError.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(URIError.prototype, "constructor"); + if (desc.value === URIError.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-176.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-176.js new file mode 100644 index 0000000000..869f49832a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-176.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: "15.2.3.3-4-176", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-176.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (JSON.stringify)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(JSON, "stringify"); + if (desc.value === JSON.stringify && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-177.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-177.js new file mode 100644 index 0000000000..b58514a124 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-177.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: "15.2.3.3-4-177", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-177.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (JSON.parse)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(JSON, "parse"); + if (desc.value === JSON.parse && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178.js new file mode 100644 index 0000000000..530e57f0c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.3-4-178", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Global.NaN)", + +test: function testcase() { + // in non-strict mode, 'this' is bound to the global object. + var desc = Object.getOwnPropertyDescriptor(fnGlobalObject(), "NaN"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + return false; + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179.js new file mode 100644 index 0000000000..8856cb4778 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.3-4-179", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Global.Infinity)", + +test: function testcase() { + // in non-strict mode, 'this' is bound to the global object. + var desc = Object.getOwnPropertyDescriptor(fnGlobalObject(), "Infinity"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + return false; + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-18.js new file mode 100644 index 0000000000..d324572a26 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-18.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: "15.2.3.3-4-18", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-18.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.defineProperty)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "defineProperty"); + if (desc.value === Object.defineProperty && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180.js new file mode 100644 index 0000000000..7e0f1d834c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.3-4-180", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Global.undefined)", + +test: function testcase() { + // in non-strict mode, 'this' is bound to the global object. + var desc = Object.getOwnPropertyDescriptor(fnGlobalObject(), "undefined"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + return false; + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-182.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-182.js new file mode 100644 index 0000000000..ae85d78157 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-182.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-182", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-182.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Object.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-183.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-183.js new file mode 100644 index 0000000000..7b5d5406d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-183.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: "15.2.3.3-4-183", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-183.js", + +description: "Object.getOwnPropertyDescriptor returns undefined for non-existent property (arguments_1) on built-in object (Function)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function, "arguments_1"); + + if (desc === undefined) + return true; + else + return false; + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-184.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-184.js new file mode 100644 index 0000000000..e468d85a92 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-184.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: "15.2.3.3-4-184", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-184.js", + +description: "Object.getOwnPropertyDescriptor returns undefined for non-existent property (caller) on built-in object (Math)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "caller"); + + if (desc === undefined) + return true; + else + return false; + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-185.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-185.js new file mode 100644 index 0000000000..d6aef42eec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-185.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-185", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-185.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Function.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js new file mode 100644 index 0000000000..3b84f9f441 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-186", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-186.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Function.length)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function, "length"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js new file mode 100644 index 0000000000..a7da8084d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.3-4-187", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-187.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Function (instance).length)", + +test: function testcase() { + var f = Function('return 42;'); + + var desc = Object.getOwnPropertyDescriptor(f, "length"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188.js new file mode 100644 index 0000000000..c06620f6c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.3-4-188", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188.js", + +description: "Object.getOwnPropertyDescriptor returns undefined for non-existent properties on built-ins (Function (instance).name)", + +test: function testcase() { + var f = Function('return 42;'); + var desc = Object.getOwnPropertyDescriptor(f, "functionNameHopefullyDoesNotExist"); + return desc === undefined; + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-189.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-189.js new file mode 100644 index 0000000000..a97db44d88 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-189.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-189", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-189.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Array.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-19.js new file mode 100644 index 0000000000..87eb7466a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-19.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: "15.2.3.3-4-19", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-19.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.defineProperties)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "defineProperties"); + if (desc.value === Object.defineProperties && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-190.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-190.js new file mode 100644 index 0000000000..8d620c7d92 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-190.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-190", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-190.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (String.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js new file mode 100644 index 0000000000..6728101daf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-191", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-191.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (String.length)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String, "length"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-192.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-192.js new file mode 100644 index 0000000000..7d3599e2ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-192.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.3-4-192", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-192.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (String (instance).length)", + +test: function testcase() { + var s = new String("abc"); + var desc = Object.getOwnPropertyDescriptor(s, "length"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-193.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-193.js new file mode 100644 index 0000000000..d8605339a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-193.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-193", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-193.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Boolean.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Boolean, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js new file mode 100644 index 0000000000..b9a78a96d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-194", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-194.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Boolean.length)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Boolean, "length"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-195.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-195.js new file mode 100644 index 0000000000..0d5d9eda0b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-195.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-195", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-195.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Number.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-196.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-196.js new file mode 100644 index 0000000000..947e6fe695 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-196.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-196", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-196.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Number.MAX_VALUE)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number, "MAX_VALUE"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-197.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-197.js new file mode 100644 index 0000000000..520917660b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-197.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-197", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-197.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Number.MIN_VALUE)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number, "MIN_VALUE"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-198.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-198.js new file mode 100644 index 0000000000..e9c17eab0a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-198.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-198", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-198.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Number.NaN)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number, "NaN"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-199.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-199.js new file mode 100644 index 0000000000..234bf89fe9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-199.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-199", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-199.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Number.NEGATIVE_INFINITY)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number, "NEGATIVE_INFINITY"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-2.js new file mode 100644 index 0000000000..8bbe753d43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-2.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: "15.2.3.3-4-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-2.js", + +description: "Object.getOwnPropertyDescriptor returns undefined for non-existent properties", + +test: function testcase() { + var o = {}; + + var desc = Object.getOwnPropertyDescriptor(o, "foo"); + if (desc === undefined) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-20.js new file mode 100644 index 0000000000..792671541a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-20.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: "15.2.3.3-4-20", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-20.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.seal)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "seal"); + if (desc.value === Object.seal && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-200.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-200.js new file mode 100644 index 0000000000..58b091dee1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-200.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-200", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-200.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Number.POSITIVE_INFINITY)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number, "POSITIVE_INFINITY"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js new file mode 100644 index 0000000000..8702e73a60 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-201", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-201.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Number.length)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number, "length"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-202.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-202.js new file mode 100644 index 0000000000..2f974250d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-202.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-202", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-202.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Math.E)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "E"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-203.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-203.js new file mode 100644 index 0000000000..adef1b1b64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-203.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-203", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-203.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Math.LN10)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "LN10"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-204.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-204.js new file mode 100644 index 0000000000..64b0b5dad0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-204.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-204", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-204.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Math.LN2)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "LN2"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-205.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-205.js new file mode 100644 index 0000000000..20789ac36e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-205.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-205", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-205.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Math.LOG2E)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "LOG2E"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-206.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-206.js new file mode 100644 index 0000000000..3e6d05d11f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-206.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-206", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-206.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Math.LOG10E)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "LOG10E"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-207.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-207.js new file mode 100644 index 0000000000..adf65bdb30 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-207.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-207", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-207.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Math.PI)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "PI"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-208.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-208.js new file mode 100644 index 0000000000..32fefe0e11 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-208.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-208", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-208.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Math.SQRT1_2)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "SQRT1_2"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-209.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-209.js new file mode 100644 index 0000000000..f2f34dc6ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-209.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-209", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-209.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Math.SQRT2)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "SQRT2"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-21.js new file mode 100644 index 0000000000..e4ec404430 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-21.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: "15.2.3.3-4-21", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-21.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.freeze)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "freeze"); + if (desc.value === Object.freeze && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-210.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-210.js new file mode 100644 index 0000000000..f378201c61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-210.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-210", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-210.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Date.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-211.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-211.js new file mode 100644 index 0000000000..935519b791 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-211.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-211", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-211.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (RegExp.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js new file mode 100644 index 0000000000..331f57019d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-212", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (RegExp.prototype.source)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "source"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js new file mode 100644 index 0000000000..d9343172f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-213", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (RegExp.prototype.global)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "global"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js new file mode 100644 index 0000000000..7ae0cc17f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-214", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (RegExp.prototype.ignoreCase)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "ignoreCase"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js new file mode 100644 index 0000000000..d7bb4e1b89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-215", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (RegExp.prototype.multiline)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "multiline"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-216.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-216.js new file mode 100644 index 0000000000..5158c5e670 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-216.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-216", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-216.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (Error.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Error, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-217.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-217.js new file mode 100644 index 0000000000..a79426074b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-217.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-217", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-217.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (EvalError.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(EvalError, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-218.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-218.js new file mode 100644 index 0000000000..7669c36660 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-218.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-218", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-218.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (RangeError.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(RangeError, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-219.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-219.js new file mode 100644 index 0000000000..2e2df44323 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-219.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-219", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-219.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (ReferenceError.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(ReferenceError, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-22.js new file mode 100644 index 0000000000..429d4d4a7c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-22.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: "15.2.3.3-4-22", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-22.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.preventExtensions)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "preventExtensions"); + if (desc.value === Object.preventExtensions && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-220.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-220.js new file mode 100644 index 0000000000..037a6e6430 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-220.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-220", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-220.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (SyntaxError.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(SyntaxError, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-221.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-221.js new file mode 100644 index 0000000000..cb6aa975c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-221.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-221", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-221.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (TypeError.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(TypeError, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-222.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-222.js new file mode 100644 index 0000000000..86d5e0c01f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-222.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-222", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-222.js", + +description: "Object.getOwnPropertyDescriptor returns data desc (all false) for properties on built-ins (URIError.prototype)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(URIError, "prototype"); + + if (desc.writable === false && + desc.enumerable === false && + desc.configurable === false && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-223.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-223.js new file mode 100644 index 0000000000..6f89569218 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-223.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-4-223", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-223.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'value' property of returned object is data property with correct 'value' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.value === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-224.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-224.js new file mode 100644 index 0000000000..6d0875950b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-224.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.3-4-224", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-224.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'value' property of returned object is data property with correct 'writable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + try { + desc.value = "overwriteDataProperty"; + return desc.value === "overwriteDataProperty"; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-225.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-225.js new file mode 100644 index 0000000000..5375e5b933 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-225.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.3-4-225", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-225.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'value' property of returned object is data property with correct 'enumerable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + var accessed = false; + + for (var prop in desc) { + if (prop === "value") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-226.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-226.js new file mode 100644 index 0000000000..61e290acd1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-226.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.3-4-226", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-226.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'value' property of returned object is data property with correct 'configurable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + var propDefined = "value" in desc; + + try { + delete desc.value; + var propDeleted = "value" in desc; + + return propDefined && !propDeleted; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-227.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-227.js new file mode 100644 index 0000000000..f890b6b042 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-227.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-4-227", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-227.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'writable' property of returned object is data property with correct 'value' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.writable === true; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-228.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-228.js new file mode 100644 index 0000000000..47ee8cd38b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-228.js @@ -0,0 +1,45 @@ + /// 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: "15.2.3.3-4-228", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-228.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'writable' property of returned object is data property with correct 'writable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + try { + desc.writable = "overwriteDataProperty"; + return desc.writable === "overwriteDataProperty"; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-229.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-229.js new file mode 100644 index 0000000000..60a8ac9b1d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-229.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.3-4-229", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-229.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'writable' property of returned object is data property with correct 'enumerable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + var accessed = false; + + for (var props in desc) { + if (props === "writable") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-23.js new file mode 100644 index 0000000000..2743c3d9e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-23.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: "15.2.3.3-4-23", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-23.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.isSealed)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "isSealed"); + if (desc.value === Object.isSealed && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-230.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-230.js new file mode 100644 index 0000000000..6810feb210 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-230.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.3-4-230", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-230.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'writable' property of returned object is data property with correct 'configurable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + var propDefined = ("writable" in desc); + + try { + delete desc.writable; + var propDeleted = "writable" in desc; + + return propDefined && !propDeleted; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-231.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-231.js new file mode 100644 index 0000000000..fea636cd32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-231.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-4-231", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-231.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'enumerable' property of returned object is data property with correct 'value' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.enumerable === true; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-232.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-232.js new file mode 100644 index 0000000000..22335aaf71 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-232.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.3-4-232", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-232.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'enumerable' property of returned object is data property with correct 'writable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + try { + desc.enumerable = "overwriteDataProperty"; + return desc.enumerable === "overwriteDataProperty"; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-233.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-233.js new file mode 100644 index 0000000000..2ec00da505 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-233.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.3-4-233", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-233.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'enumerable' property of returned object is data property with correct 'enumerable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + var accessed = false; + + for (var props in desc) { + if (props === "enumerable") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-234.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-234.js new file mode 100644 index 0000000000..be24fb337d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-234.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.3-4-234", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-234.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'enumerable' property of returned object is data property with correct 'configurable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + var propDefined = "enumerable" in desc; + + try { + delete desc.enumerable; + var propDeleted = "enumerable" in desc; + + return propDefined && !propDeleted; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-235.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-235.js new file mode 100644 index 0000000000..3cc810816c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-235.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-4-235", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-235.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'configurable' property of returned object is data property with correct 'value' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.configurable === true; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-236.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-236.js new file mode 100644 index 0000000000..a8086bd859 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-236.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.3-4-236", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-236.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'configurable' property of returned object is data property with correct 'writable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + try { + desc.writable = "overwriteDataProperty"; + return desc.writable === "overwriteDataProperty"; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-237.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-237.js new file mode 100644 index 0000000000..e58a289f3b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-237.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.3-4-237", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-237.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'configurable' property of returned object is data property with correct 'enumerable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + var accessed = false; + + for (var prop in desc) { + if (prop === "configurable") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-238.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-238.js new file mode 100644 index 0000000000..83697eff40 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-238.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.3-4-238", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-238.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'configurable' property of returned object is data property with correct 'configurable' attribute", + + test: function testcase() { + var obj = { "property": "ownDataProperty" }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + var propDefined = "configurable" in desc; + + try { + delete desc.configurable; + var propDeleted = "configurable" in desc; + + return propDefined && !propDeleted; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-239.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-239.js new file mode 100644 index 0000000000..3255baa393 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-239.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.3-4-239", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-239.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'get' property of returned object is data property with correct 'value' attribute", + + test: function testcase() { + var obj = {}; + var fun = function () { + return "ownDataProperty"; + }; + Object.defineProperty(obj, "property", { + get: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.get === fun; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-24.js new file mode 100644 index 0000000000..8a8f8be43f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-24.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: "15.2.3.3-4-24", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-24.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.isFrozen)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "isFrozen"); + if (desc.value === Object.isFrozen && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-240.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-240.js new file mode 100644 index 0000000000..4c8667ccb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-240.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.3-4-240", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-240.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'get' property of returned object is data property with correct 'writable' attribute", + + test: function testcase() { + var obj = {}; + var fun = function () { + return "ownGetProperty"; + }; + Object.defineProperty(obj, "property", { + get: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + try { + desc.get = "overwriteGetProperty"; + return desc.get === "overwriteGetProperty"; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-241.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-241.js new file mode 100644 index 0000000000..7268cbef1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-241.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.3-4-241", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-241.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'get' property of returned object is data property with correct 'enumerable' attribute", + + test: function testcase() { + var obj = {}; + var fun = function () { + return "ownDataProperty"; + }; + Object.defineProperty(obj, "property", { + get: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + var accessed = false; + + for (var prop in desc) { + if (prop === "get") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-242.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-242.js new file mode 100644 index 0000000000..53f4de6001 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-242.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.3-4-242", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-242.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'get' property of returned object is data property with correct 'configurable' attribute", + + test: function testcase() { + var obj = {}; + var fun = function () { + return "ownDataProperty"; + }; + Object.defineProperty(obj, "property", { + get: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + var propDefined = "get" in desc; + + try { + delete desc.get; + var propDeleted = "get" in desc; + + return propDefined && !propDeleted; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-243.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-243.js new file mode 100644 index 0000000000..36f0b57ea6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-243.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.3-4-243", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-243.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'set' property of returned object is data property with correct 'value' attribute", + + test: function testcase() { + var obj = {}; + var fun = function () { + return "ownSetProperty"; + }; + Object.defineProperty(obj, "property", { + set: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc.set === fun; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-244.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-244.js new file mode 100644 index 0000000000..c327020de1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-244.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.3-4-244", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-244.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'set' property of returned object is data property with correct 'writable' attribute", + + test: function testcase() { + var obj = {}; + var fun = function () { + return "ownSetProperty"; + }; + Object.defineProperty(obj, "property", { + set: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + try { + desc.set = "overwriteSetProperty"; + return desc.set === "overwriteSetProperty"; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-245.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-245.js new file mode 100644 index 0000000000..1755f8f868 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-245.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.3-4-245", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-245.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'set' property of returned object is data property with correct 'enumerable' attribute", + + test: function testcase() { + var obj = {}; + var fun = function () { + return "ownSetProperty"; + }; + Object.defineProperty(obj, "property", { + set: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + var accessed = false; + + for (var prop in desc) { + if (prop === "set") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-246.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-246.js new file mode 100644 index 0000000000..da09e4cb74 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-246.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.3-4-246", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-246.js", + + description: "Object.getOwnPropertyDescriptor - ensure that 'set' property of returned object is data property with correct 'configurable' attribute", + + test: function testcase() { + var obj = {}; + var fun = function () { + return "ownSetProperty"; + }; + Object.defineProperty(obj, "property", { + set: fun, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + var propDefined = "set" in desc; + + try { + delete desc.set; + var propDeleted = "set" in desc; + + return propDefined && !propDeleted; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-247.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-247.js new file mode 100644 index 0000000000..f443174077 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-247.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.3-4-247", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-247.js", + + description: "Object.getOwnPropertyDescriptor - returned value is an instance of object", + + test: function testcase() { + var obj = { "property": 100 }; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return desc instanceof Object; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-248.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-248.js new file mode 100644 index 0000000000..0ccbc89901 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-248.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-248", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-248.js", + + description: "Object.getOwnPropertyDescriptor - returned object contains the property 'value' if the value of property 'value' is not explicitly specified when defined by Object.defineProperty", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "property", { + writable: true, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return "value" in desc; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-249.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-249.js new file mode 100644 index 0000000000..f1b34e3c0e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-249.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-249", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-249.js", + + description: "Object.getOwnPropertyDescriptor - returned object contains the property 'set' if the value of property 'set' is not explicitly specified when defined by Object.defineProperty.", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "property", { + get: function () { }, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return "set" in desc; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-25.js new file mode 100644 index 0000000000..8d03a82ae6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-25.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: "15.2.3.3-4-25", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-25.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.isExtensible)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "isExtensible"); + if (desc.value === Object.isExtensible && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-250.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-250.js new file mode 100644 index 0000000000..8d2685e83c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-250.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.3-4-250", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-250.js", + + description: "Object.getOwnPropertyDescriptor - returned object contains the property 'get' if the value of property 'get' is not explicitly specified when defined by Object.defineProperty.", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "property", { + set: function () {}, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + + return "get" in desc; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-26.js new file mode 100644 index 0000000000..62b0ded172 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-26.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: "15.2.3.3-4-26", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-26.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.keys)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "keys"); + if (desc.value === Object.keys && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-27.js new file mode 100644 index 0000000000..7909e6fb43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-27.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: "15.2.3.3-4-27", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-27.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object.prototype, "constructor"); + if (desc.value === Object.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-28.js new file mode 100644 index 0000000000..f7aa9e8229 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-28.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: "15.2.3.3-4-28", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-28.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object.prototype, "toString"); + if (desc.value === Object.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-29.js new file mode 100644 index 0000000000..88109be104 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-29.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: "15.2.3.3-4-29", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-29.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.prototype.valueOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object.prototype, "valueOf"); + if (desc.value === Object.prototype.valueOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-3.js new file mode 100644 index 0000000000..db856cd5f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-3.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.3-4-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-3.js", + +description: "Object.getOwnPropertyDescriptor returns an object representing an accessor desc for valid accessor properties", + +test: function testcase() { + var o = {}; + + // dummy getter + var getter = function () { return 1; } + var d = { get: getter }; + + Object.defineProperty(o, "foo", d); + + var desc = Object.getOwnPropertyDescriptor(o, "foo"); + if (desc.get === getter && + desc.set === undefined && + desc.enumerable === false && + desc.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-30.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-30.js new file mode 100644 index 0000000000..b1f5bc6321 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-30.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: "15.2.3.3-4-30", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-30.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.prototype.isPrototypeOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object.prototype, "isPrototypeOf"); + if (desc.value === Object.prototype.isPrototypeOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-31.js new file mode 100644 index 0000000000..38f207fb65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-31.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: "15.2.3.3-4-31", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-31.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.prototype.hasOwnProperty)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object.prototype, "hasOwnProperty"); + if (desc.value === Object.prototype.hasOwnProperty && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-32.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-32.js new file mode 100644 index 0000000000..5d95777409 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-32.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: "15.2.3.3-4-32", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-32.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.prototype.propertyIsEnumerable)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object.prototype, "propertyIsEnumerable"); + if (desc.value === Object.prototype.propertyIsEnumerable && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-33.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-33.js new file mode 100644 index 0000000000..d78954b2f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-33.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: "15.2.3.3-4-33", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-33.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Object.prototype.toLocaleString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object.prototype, "toLocaleString"); + if (desc.value === Object.prototype.toLocaleString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-34.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-34.js new file mode 100644 index 0000000000..c0b79d39cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-34.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: "15.2.3.3-4-34", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-34.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Function.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function.prototype, "constructor"); + if (desc.value === Function.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-35.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-35.js new file mode 100644 index 0000000000..13634976c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-35.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: "15.2.3.3-4-35", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-35.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Function.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function.prototype, "toString"); + if (desc.value === Function.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-36.js new file mode 100644 index 0000000000..86aad6109b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-36.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: "15.2.3.3-4-36", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-36.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Function.prototype.apply)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function.prototype, "apply"); + if (desc.value === Function.prototype.apply && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-37.js new file mode 100644 index 0000000000..ac3c4687cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-37.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: "15.2.3.3-4-37", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-37.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Function.prototype.call)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function.prototype, "call"); + if (desc.value === Function.prototype.call && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-38.js new file mode 100644 index 0000000000..dc3820f725 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-38.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: "15.2.3.3-4-38", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-38.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Function.prototype.bind)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function.prototype, "bind"); + if (desc.value === Function.prototype.bind && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-39.js new file mode 100644 index 0000000000..a741f5de32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-39.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: "15.2.3.3-4-39", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-39.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "constructor"); + if (desc.value === Array.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-4.js new file mode 100644 index 0000000000..0a4a3f3459 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-4.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: "15.2.3.3-4-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-4.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.eval)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "eval"); + if (desc.value === global.eval && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-40.js new file mode 100644 index 0000000000..ece6582545 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-40.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: "15.2.3.3-4-40", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-40.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.concat)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "concat"); + if (desc.value === Array.prototype.concat && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-41.js new file mode 100644 index 0000000000..d6203c8af7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-41.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: "15.2.3.3-4-41", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-41.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.join)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "join"); + if (desc.value === Array.prototype.join && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-42.js new file mode 100644 index 0000000000..4cc861cede --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-42.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: "15.2.3.3-4-42", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-42.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.reverse)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reverse"); + if (desc.value === Array.prototype.reverse && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-43.js new file mode 100644 index 0000000000..62ab79fe44 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-43.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: "15.2.3.3-4-43", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-43.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.slice)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "slice"); + if (desc.value === Array.prototype.slice && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-44.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-44.js new file mode 100644 index 0000000000..83ae680e85 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-44.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: "15.2.3.3-4-44", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-44.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.sort)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "sort"); + if (desc.value === Array.prototype.sort && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-45.js new file mode 100644 index 0000000000..f5010e58de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-45.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: "15.2.3.3-4-45", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-45.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "toString"); + if (desc.value === Array.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-46.js new file mode 100644 index 0000000000..9f22dac69a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-46.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: "15.2.3.3-4-46", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-46.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.push)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "push"); + if (desc.value === Array.prototype.push && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-47.js new file mode 100644 index 0000000000..949db471c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-47.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: "15.2.3.3-4-47", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-47.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.pop)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "pop"); + if (desc.value === Array.prototype.pop && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-48.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-48.js new file mode 100644 index 0000000000..a0d0db4193 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-48.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: "15.2.3.3-4-48", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-48.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.shift)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "shift"); + if (desc.value === Array.prototype.shift && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-49.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-49.js new file mode 100644 index 0000000000..8aee28d7d5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-49.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: "15.2.3.3-4-49", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-49.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.unshift)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "unshift"); + if (desc.value === Array.prototype.unshift && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-5.js new file mode 100644 index 0000000000..ec5a5911b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-5.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: "15.2.3.3-4-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-5.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.parseInt)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "parseInt"); + if (desc.value === global.parseInt && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-50.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-50.js new file mode 100644 index 0000000000..10015a9b6b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-50.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: "15.2.3.3-4-50", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-50.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.splice)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "splice"); + if (desc.value === Array.prototype.splice && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-51.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-51.js new file mode 100644 index 0000000000..fc7614f5cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-51.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: "15.2.3.3-4-51", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-51.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.toLocaleString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "toLocaleString"); + if (desc.value === Array.prototype.toLocaleString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-52.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-52.js new file mode 100644 index 0000000000..ecb8dabd56 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-52.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: "15.2.3.3-4-52", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-52.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.indexOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "indexOf"); + if (desc.value === Array.prototype.indexOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-53.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-53.js new file mode 100644 index 0000000000..460e896c00 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-53.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: "15.2.3.3-4-53", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-53.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.lastIndexOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "lastIndexOf"); + if (desc.value === Array.prototype.lastIndexOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-54.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-54.js new file mode 100644 index 0000000000..83de4a9ce3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-54.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: "15.2.3.3-4-54", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-54.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.every)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "every"); + if (desc.value === Array.prototype.every && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-55.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-55.js new file mode 100644 index 0000000000..d56a17c752 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-55.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: "15.2.3.3-4-55", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-55.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.some)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "some"); + if (desc.value === Array.prototype.some && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-56.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-56.js new file mode 100644 index 0000000000..dce7e71f89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-56.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: "15.2.3.3-4-56", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-56.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.forEach)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "forEach"); + if (desc.value === Array.prototype.forEach && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-57.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-57.js new file mode 100644 index 0000000000..edc881ed5e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-57.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: "15.2.3.3-4-57", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-57.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.map)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "map"); + if (desc.value === Array.prototype.map && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-58.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-58.js new file mode 100644 index 0000000000..ae7f223d8c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-58.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: "15.2.3.3-4-58", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-58.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.filter)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "filter"); + if (desc.value === Array.prototype.filter && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-59.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-59.js new file mode 100644 index 0000000000..c5d4079613 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-59.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: "15.2.3.3-4-59", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-59.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.reduce)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reduce"); + if (desc.value === Array.prototype.reduce && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-6.js new file mode 100644 index 0000000000..e37129d1f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-6.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: "15.2.3.3-4-6", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-6.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.parseFloat)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "parseFloat"); + if (desc.value === global.parseFloat && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-60.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-60.js new file mode 100644 index 0000000000..89308b3d5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-60.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: "15.2.3.3-4-60", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-60.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Array.prototype.reduceRight)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reduceRight"); + if (desc.value === Array.prototype.reduceRight && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-61.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-61.js new file mode 100644 index 0000000000..9f2167b260 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-61.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: "15.2.3.3-4-61", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-61.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.fromCharCode)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String, "fromCharCode"); + if (desc.value === String.fromCharCode && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-62.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-62.js new file mode 100644 index 0000000000..11f9dd31bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-62.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: "15.2.3.3-4-62", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-62.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "constructor"); + if (desc.value === String.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-63.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-63.js new file mode 100644 index 0000000000..528bfa425e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-63.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: "15.2.3.3-4-63", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-63.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.charAt)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "charAt"); + if (desc.value === String.prototype.charAt && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-64.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-64.js new file mode 100644 index 0000000000..388bf6ad2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-64.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: "15.2.3.3-4-64", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-64.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.charCodeAt)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "charCodeAt"); + if (desc.value === String.prototype.charCodeAt && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-65.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-65.js new file mode 100644 index 0000000000..5b2776e214 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-65.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: "15.2.3.3-4-65", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-65.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.concat)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "concat"); + if (desc.value === String.prototype.concat && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-66.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-66.js new file mode 100644 index 0000000000..a1881ba53b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-66.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: "15.2.3.3-4-66", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-66.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.indexOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "indexOf"); + if (desc.value === String.prototype.indexOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-67.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-67.js new file mode 100644 index 0000000000..ccfed13440 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-67.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: "15.2.3.3-4-67", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-67.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.lastIndexOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "lastIndexOf"); + if (desc.value === String.prototype.lastIndexOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-68.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-68.js new file mode 100644 index 0000000000..bd10bc92a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-68.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: "15.2.3.3-4-68", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-68.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.match)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "match"); + if (desc.value === String.prototype.match && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-69.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-69.js new file mode 100644 index 0000000000..39de05d52e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-69.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: "15.2.3.3-4-69", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-69.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.replace)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "replace"); + if (desc.value === String.prototype.replace && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-7.js new file mode 100644 index 0000000000..a6fe011f75 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-7.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: "15.2.3.3-4-7", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-7.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.isNaN)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "isNaN"); + if (desc.value === global.isNaN && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-70.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-70.js new file mode 100644 index 0000000000..f5ad14eded --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-70.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: "15.2.3.3-4-70", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-70.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.search)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "search"); + if (desc.value === String.prototype.search && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-71.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-71.js new file mode 100644 index 0000000000..40436dfd7f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-71.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: "15.2.3.3-4-71", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-71.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.slice)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "slice"); + if (desc.value === String.prototype.slice && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-72.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-72.js new file mode 100644 index 0000000000..6e3694a9bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-72.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: "15.2.3.3-4-72", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-72.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.split)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "split"); + if (desc.value === String.prototype.split && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-73.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-73.js new file mode 100644 index 0000000000..be98064fbb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-73.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: "15.2.3.3-4-73", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-73.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.substring)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "substring"); + if (desc.value === String.prototype.substring && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-74.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-74.js new file mode 100644 index 0000000000..69d41facca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-74.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: "15.2.3.3-4-74", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-74.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.substr)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "substr"); + if (desc.value === String.prototype.substr && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-75.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-75.js new file mode 100644 index 0000000000..18f8b36961 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-75.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: "15.2.3.3-4-75", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-75.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.toLowerCase)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "toLowerCase"); + if (desc.value === String.prototype.toLowerCase && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-76.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-76.js new file mode 100644 index 0000000000..d67ae6a27f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-76.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: "15.2.3.3-4-76", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-76.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "toString"); + if (desc.value === String.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-77.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-77.js new file mode 100644 index 0000000000..ba834eb8e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-77.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: "15.2.3.3-4-77", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-77.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.toUpperCase)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "toUpperCase"); + if (desc.value === String.prototype.toUpperCase && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-78.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-78.js new file mode 100644 index 0000000000..547c577aa1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-78.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: "15.2.3.3-4-78", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-78.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.valueOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "valueOf"); + if (desc.value === String.prototype.valueOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-79.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-79.js new file mode 100644 index 0000000000..153706cabe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-79.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: "15.2.3.3-4-79", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-79.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.toLocaleLowerCase)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "toLocaleLowerCase"); + if (desc.value === String.prototype.toLocaleLowerCase && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-8.js new file mode 100644 index 0000000000..b9f05b46f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-8.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: "15.2.3.3-4-8", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-8.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.isFinite)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "isFinite"); + if (desc.value === global.isFinite && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-80.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-80.js new file mode 100644 index 0000000000..0a3a47a808 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-80.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: "15.2.3.3-4-80", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-80.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.toLocaleUpperCase)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "toLocaleUpperCase"); + if (desc.value === String.prototype.toLocaleUpperCase && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-81.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-81.js new file mode 100644 index 0000000000..f641355e4e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-81.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: "15.2.3.3-4-81", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-81.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.localeCompare)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "localeCompare"); + if (desc.value === String.prototype.localeCompare && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-82.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-82.js new file mode 100644 index 0000000000..7b0a3a14ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-82.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: "15.2.3.3-4-82", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-82.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (String.prototype.trim)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "trim"); + if (desc.value === String.prototype.trim && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-84.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-84.js new file mode 100644 index 0000000000..26bcb4ce49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-84.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: "15.2.3.3-4-84", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-84.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Boolean.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Boolean.prototype, "constructor"); + if (desc.value === Boolean.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-85.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-85.js new file mode 100644 index 0000000000..8f1d5acb8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-85.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: "15.2.3.3-4-85", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-85.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Boolean.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Boolean.prototype, "toString"); + if (desc.value === Boolean.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-86.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-86.js new file mode 100644 index 0000000000..cac2625994 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-86.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: "15.2.3.3-4-86", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-86.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Boolean.prototype.valueOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Boolean.prototype, "valueOf"); + if (desc.value === Boolean.prototype.valueOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-88.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-88.js new file mode 100644 index 0000000000..244d527f3e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-88.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: "15.2.3.3-4-88", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-88.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Number.prototype.constructor)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number.prototype, "constructor"); + if (desc.value === Number.prototype.constructor && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-89.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-89.js new file mode 100644 index 0000000000..d8e2bfe99d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-89.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: "15.2.3.3-4-89", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-89.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Number.prototype.toString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toString"); + if (desc.value === Number.prototype.toString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-9.js new file mode 100644 index 0000000000..7f03a3b9de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-9.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: "15.2.3.3-4-9", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-9.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Global.decodeURI)", + +test: function testcase() { + var global = fnGlobalObject(); + var desc = Object.getOwnPropertyDescriptor(global, "decodeURI"); + if (desc.value === global.decodeURI && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-90.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-90.js new file mode 100644 index 0000000000..75f36649c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-90.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: "15.2.3.3-4-90", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-90.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Number.prototype.toLocaleString)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toLocaleString"); + if (desc.value === Number.prototype.toLocaleString && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-91.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-91.js new file mode 100644 index 0000000000..e5303550db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-91.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: "15.2.3.3-4-91", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-91.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Number.prototype.toFixed)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toFixed"); + if (desc.value === Number.prototype.toFixed && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-92.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-92.js new file mode 100644 index 0000000000..ddb9341e28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-92.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: "15.2.3.3-4-92", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-92.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Number.prototype.toExponential)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toExponential"); + if (desc.value === Number.prototype.toExponential && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-93.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-93.js new file mode 100644 index 0000000000..cc0c2d52c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-93.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: "15.2.3.3-4-93", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-93.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Number.prototype.toPrecision)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number.prototype, "toPrecision"); + if (desc.value === Number.prototype.toPrecision && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-94.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-94.js new file mode 100644 index 0000000000..de43a9de23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-94.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: "15.2.3.3-4-94", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-94.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Number.prototype.valueOf)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Number.prototype, "valueOf"); + if (desc.value === Number.prototype.valueOf && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-96.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-96.js new file mode 100644 index 0000000000..1a7a9c50be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-96.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: "15.2.3.3-4-96", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-96.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.abs)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "abs"); + if (desc.value === Math.abs && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-97.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-97.js new file mode 100644 index 0000000000..fcab26209f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-97.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: "15.2.3.3-4-97", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-97.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.acos)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "acos"); + if (desc.value === Math.acos && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-98.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-98.js new file mode 100644 index 0000000000..f3e129a009 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-98.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: "15.2.3.3-4-98", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-98.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.asin)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "asin"); + if (desc.value === Math.asin && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-99.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-99.js new file mode 100644 index 0000000000..a1ed030dd1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-99.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: "15.2.3.3-4-99", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-99.js", + +description: "Object.getOwnPropertyDescriptor returns data desc for functions on built-ins (Math.atan)", + +test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Math, "atan"); + if (desc.value === Math.atan && + desc.writable === true && + desc.enumerable === false && + desc.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-0-1.js new file mode 100644 index 0000000000..2b946256d5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-0-1.js @@ -0,0 +1,34 @@ +/// 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: "15.2.3.4-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-0-1.js", + +description: "Object.getOwnPropertyNames must exist as a function", + +test: function testcase() { + if (typeof(Object.getOwnPropertyNames) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-0-2.js new file mode 100644 index 0000000000..ae480ef1dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.4-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-0-2.js", + +description: "Object.getOwnPropertyNames must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.getOwnPropertyNames.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-2.js new file mode 100644 index 0000000000..ad408b4ca0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-2.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: "15.2.3.4-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-2.js", + + description: "Object.getOwnPropertyNames throws TypeError if 'O' is undefined", + + test: function testcase() { + try { + Object.getOwnPropertyNames(undefined); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-3.js new file mode 100644 index 0000000000..6fb0405aa3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-3.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: "15.2.3.4-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-3.js", + + description: "Object.getOwnPropertyNames throws TypeError if 'O' is null", + + test: function testcase() { + try { + Object.getOwnPropertyNames(null); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js new file mode 100644 index 0000000000..693d7f87b6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.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: "15.2.3.4-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-4.js", + + description: "Object.getOwnPropertyNames throws TypeError if 'O' is a boolean", + + test: function testcase() { + try { + Object.getOwnPropertyNames(true); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js new file mode 100644 index 0000000000..f5a0317584 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.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: "15.2.3.4-1-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1-5.js", + + description: "Object.getOwnPropertyNames throws TypeError if 'O' is a string", + + test: function testcase() { + try { + Object.getOwnPropertyNames("abc"); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js new file mode 100644 index 0000000000..5c014ee32d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.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: "15.2.3.4-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-1.js", + +description: "Object.getOwnPropertyNames throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.getOwnPropertyNames(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-1.js new file mode 100644 index 0000000000..88e83a54c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.4-2-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-1.js", + + description: "Object.getOwnPropertyNames - returned array is an array according to Array.isArray", + + test: function testcase() { + + var obj = {}; + var result = Object.getOwnPropertyNames(obj); + + return Array.isArray(result); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-2.js new file mode 100644 index 0000000000..144947b6ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-2.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.4-2-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-2.js", + + description: "Object.getOwnPropertyNames - returned array is an instance of Array", + + test: function testcase() { + var obj = {}; + var result = Object.getOwnPropertyNames(obj); + + return result instanceof Array; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-3.js new file mode 100644 index 0000000000..7efae96a02 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-3.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.4-2-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-3.js", + + description: "Object.getOwnPropertyNames - length of returned array is initialized to 0", + + test: function testcase() { + + var obj = {}; + var result = Object.getOwnPropertyNames(obj); + + return result.length === 0; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-4.js new file mode 100644 index 0000000000..ff16c4dc25 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-4.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.4-2-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-2-4.js", + + description: "Object.getOwnPropertyNames - returned array is the standard built-in constructor", + + test: function testcase() { + var oldArray = Array; + Array = function () { + throw new Error("invoke customer defined Array!"); + }; + + var obj = {}; + try { + var result = Object.getOwnPropertyNames(obj); + return Object.prototype.toString.call(result) === "[object Array]"; + } catch (ex) { + return false; + } finally { + Array = oldArray; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-3-1.js new file mode 100644 index 0000000000..392ba37405 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-3-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.4-3-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-3-1.js", + + description: "Object.getOwnPropertyNames - elements of the returned array start from index 0", + + test: function testcase() { + var obj = { prop1: 1001 }; + + var arr = Object.getOwnPropertyNames(obj); + + return arr.hasOwnProperty(0) && arr[0] === "prop1"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-1.js new file mode 100644 index 0000000000..a3e329593e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.4-4-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-1.js", + + description: "Object.getOwnPropertyNames returns array of property names (Global)", + + test: function testcase() { + var result = Object.getOwnPropertyNames(fnGlobalObject()); + var expResult = ["NaN", "Infinity", "undefined", "eval", "parseInt", "parseFloat", "isNaN", "isFinite", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "Object", "Function", "Array", "String", "Boolean", "Number", "Date", "Date", "RegExp", "Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError", "Math", "JSON"]; + + var result1 = {}; + for (var p in result) { + result1[result[p]] = true; + } + + for (var p1 in expResult) { + if (!result1[expResult[p1]]) { + return false; + } + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-2.js new file mode 100644 index 0000000000..a05cb121f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.4-4-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-2.js", + +description: "Object.getOwnPropertyNames returns array of property names (Object)", + +test: function testcase() { + var result = Object.getOwnPropertyNames(Object); + var expResult = ["getPrototypeOf", "getOwnPropertyDescriptor", "getOwnPropertyNames", "create", "defineProperty", "defineProperties", "seal", "freeze", "preventExtensions", "isSealed", "isFrozen", "isExtensible", "keys", "prototype", "length"]; + var found; + + return arrayContains(result, expResult); + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-36.js new file mode 100644 index 0000000000..0056eb95ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-36.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.4-4-36", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-36.js", + + description: "Object.getOwnPropertyNames - inherited data properties are not pushed into the returned array", + + test: function testcase() { + + var proto = { "parent": "parent" }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + var result = Object.getOwnPropertyNames(child); + + for (var p in result) { + if (result[p] === "parent") { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-37.js new file mode 100644 index 0000000000..3f427f2383 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-37.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.4-4-37", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-37.js", + + description: "Object.getOwnPropertyNames - inherited accessor properties are not pushed into the returned array", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "parent", { + get: function () { + return "parent"; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + var result = Object.getOwnPropertyNames(child); + + for (var p in result) { + if (result[p] === "parent") { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-38.js new file mode 100644 index 0000000000..97f59aa09d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-38.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: "15.2.3.4-4-38", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-38.js", + + description: "Object.getOwnPropertyNames - own data properties are pushed into the returned array", + + test: function testcase() { + + var obj = { "a": "a" }; + + var result = Object.getOwnPropertyNames(obj); + + return result[0] === "a"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-39.js new file mode 100644 index 0000000000..a5aafc793a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-39.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.4-4-39", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-39.js", + + description: "Object.getOwnPropertyNames - own accessor properties are pushed into the returned array", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "a", { + get: function () { + return "a"; + }, + configurable: true + }); + + var result = Object.getOwnPropertyNames(obj); + + return result[0] === "a"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-40.js new file mode 100644 index 0000000000..e8e582c252 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-40.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.4-4-40", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-40.js", + + description: "Object.getOwnPropertyNames - inherited data property of String object 'O' is not pushed into the returned array", + + test: function testcase() { + try { + var str = new String("abc"); + + String.prototype.protoProperty = "protoString"; + + var result = Object.getOwnPropertyNames(str); + + for (var p in result) { + if (result[p] === "protoProperty") { + return false; + } + } + + return true; + } finally { + delete String.prototype.protoProperty; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-41.js new file mode 100644 index 0000000000..47196686bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-41.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.4-4-41", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-41.js", + + description: "Object.getOwnPropertyNames - inherited accessor property of String object 'O' is not pushed into the returned array", + + test: function testcase() { + try { + var str = new String("abc"); + + Object.defineProperty(String.prototype, "protoProperty", { + get: function () { + return "protoString"; + }, + configurable: true + }); + + var result = Object.getOwnPropertyNames(str); + + for (var p in result) { + if (result[p] === "protoProperty") { + return false; + } + } + return true; + } finally { + delete String.prototype.protoProperty; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-42.js new file mode 100644 index 0000000000..1d10c0ef6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-42.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.4-4-42", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-42.js", + + description: "Object.getOwnPropertyNames - own data property of String object 'O' is pushed into the returned array", + + test: function testcase() { + var str = new String("abc"); + + Object.defineProperty(str, "ownProperty", { + value: "ownString", + configurable: true + }); + + var result = Object.getOwnPropertyNames(str); + + for (var p in result) { + if (result[p] === "ownProperty") { + return true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-43.js new file mode 100644 index 0000000000..bce5785c4d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-43.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.4-4-43", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-43.js", + + description: "Object.getOwnPropertyNames - own accessor property of String object 'O' is pushed into the returned array", + + test: function testcase() { + var str = new String("abc"); + + Object.defineProperty(str, "ownProperty", { + get: function () { + return "ownString"; + }, + configurable: true + }); + + var result = Object.getOwnPropertyNames(str); + + for (var p in result) { + if (result[p] === "ownProperty") { + return true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-44.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-44.js new file mode 100644 index 0000000000..df2747bb5e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-44.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.4-4-44", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-44.js", + + description: "Object.getOwnPropertyNames - own index properties of String object are pushed into the returned Array", + + test: function testcase() { + + var str = new String("abc"); + str[5] = "de"; + + var expResult = ["0", "1", "2", "length", "5"]; + + var result = Object.getOwnPropertyNames(str); + + return compareArray(expResult, result); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-45.js new file mode 100644 index 0000000000..0f60161ecd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-45.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.4-4-45", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-45.js", + + description: "Object.getOwnPropertyNames - inherited data property of Array object 'O' is not pushed into the returned array.", + + test: function testcase() { + try { + var arr = [0, 1, 2]; + + Array.prototype.protoProperty = "protoArray"; + + var result = Object.getOwnPropertyNames(arr); + + for (var p in result) { + if (result[p] === "protoProperty") { + return false; + } + } + return true; + } finally { + delete Array.prototype.protoProperty; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-46.js new file mode 100644 index 0000000000..904727a87d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-46.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: "15.2.3.4-4-46", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-46.js", + + description: "Object.getOwnPropertyNames - inherited accessor property of Array object 'O' is not pushed into the returned array.", + + test: function testcase() { + try { + var arr = [0, 1, 2]; + + Object.defineProperty(Array.prototype, "protoProperty", { + get: function () { + return "protoArray"; + }, + configurable: true + }); + + var result = Object.getOwnPropertyNames(arr); + + for (var p in result) { + if (result[p] === "protoProperty") { + return false; + } + } + return true; + } finally { + delete Array.prototype.protoProperty; + } + }, + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-47.js new file mode 100644 index 0000000000..53f994e68e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-47.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.4-4-47", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-47.js", + + description: "Object.getOwnPropertyNames - own data property of Array object 'O' is pushed into the returned array", + + test: function testcase() { + var arr = [0, 1, 2]; + arr.ownProperty = "ownArray"; + + var result = Object.getOwnPropertyNames(arr); + + for (var p in result) { + if (result[p] === "ownProperty") { + return true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-48.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-48.js new file mode 100644 index 0000000000..45bd226ce1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-48.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.4-4-48", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-48.js", + + description: "Object.getOwnPropertyNames - own accessor property of Array object 'O' is pushed into the returned array.", + + test: function testcase() { + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "ownProperty", { + get: function () { + return "ownArray"; + }, + configurable: true + }); + + var result = Object.getOwnPropertyNames(arr); + + for (var p in result) { + if (result[p] === "ownProperty") { + return true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-49.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-49.js new file mode 100644 index 0000000000..f36fb401d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-49.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: "15.2.3.4-4-49", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-49.js", + + description: "Object.getOwnPropertyNames - own index properties of Array objcect are pushed into the returned Array", + + test: function testcase() { + var arr = [0, 1, 2]; + + var expResult = ["0", "1", "2", "length"]; + + var result = Object.getOwnPropertyNames(arr); + + return compareArray(expResult, result); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-50.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-50.js new file mode 100644 index 0000000000..6c2bc596bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-50.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.4-4-50", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-50.js", + + description: "Object.getOwnPropertyNames - non-enumerable own property of 'O' is pushed into the returned Array", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "nonEnumerableProp", { + value: 10, + enumerable: false, + configurable: true + }); + + var result = Object.getOwnPropertyNames(obj); + + return result[0] === "nonEnumerableProp"; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-1.js new file mode 100644 index 0000000000..95e8211f51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-1.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.4-4-b-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-1.js", + +description: "Object.getOwnPropertyNames - descriptor of resultant array is all true", + +test: function testcase() { + var obj = new Object(); + obj.x = 1; + obj.y = 2; + var result = Object.getOwnPropertyNames(obj); + var desc = Object.getOwnPropertyDescriptor(result,"0"); + if (desc.enumerable === true && + desc.configurable === true && + desc.writable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-2.js new file mode 100644 index 0000000000..7ebe0f5019 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-2.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.4-4-b-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-2.js", + + description: "Object.getOwnPropertyNames - all own properties are pushed into the returned array", + + test: function testcase() { + var obj = { "a": "a" }; + + Object.defineProperty(obj, "b", { + get: function () { + return "b"; + }, + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, "c", { + get: function () { + return "c"; + }, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "d", { + value: "d", + enumerable: false, + configurable: true + }); + + var result = Object.getOwnPropertyNames(obj); + var expResult = ["a", "b", "c", "d"]; + + return compareArray(expResult, result); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-3.js new file mode 100644 index 0000000000..f3258edbf0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-3.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.4-4-b-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-3.js", + + description: "Object.getOwnPropertyNames - own property named empty('') is pushed into the returned array", + + test: function testcase() { + var obj = { "": "empty" }; + + var result = Object.getOwnPropertyNames(obj); + + for (var p in result) { + if (result[p] === "") { + return true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-4.js new file mode 100644 index 0000000000..24ed4cc719 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-4.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.4-4-b-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-4.js", + + description: "Object.getOwnPropertyNames - elements of the returned array are writable", + + test: function testcase() { + var obj = { "a": "a" }; + + var result = Object.getOwnPropertyNames(obj); + + try { + var beforeOverride = (result[0] === "a"); + result[0] = "b"; + var afterOverride = (result[0] === "b"); + + return beforeOverride && afterOverride; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-5.js new file mode 100644 index 0000000000..48976edd18 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-5.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.4-4-b-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-5.js", + + description: "Object.getOwnPropertyNames - elements of the returned array are enumerable", + + test: function testcase() { + var obj = { "a": "a" }; + + var result = Object.getOwnPropertyNames(obj); + + for (var p in result) { + if (result[p] === "a") { + return true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-6.js new file mode 100644 index 0000000000..e09fde1f2e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-6.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.4-4-b-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-b-6.js", + + description: "Object.getOwnPropertyNames - elements of the returned array are configurable", + + test: function testcase() { + var obj = { "a": "a" }; + + var result = Object.getOwnPropertyNames(obj); + + var beforeDeleted = (result.hasOwnProperty("0")); + delete result[0]; + var afterDeleted = (result.hasOwnProperty("0")); + + return beforeDeleted && !afterDeleted; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyNames); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-0-1.js new file mode 100644 index 0000000000..52c9cd36b6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-0-1.js @@ -0,0 +1,34 @@ +/// 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: "15.2.3.5-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-0-1.js", + +description: "Object.create must exist as a function", + +test: function testcase() { + if (typeof(Object.create) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-0-2.js new file mode 100644 index 0000000000..7290efa5e6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.5-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-0-2.js", + +description: "Object.create must exist as a function taking 2 parameters", + +test: function testcase() { + if (Object.create.length === 2) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-1.js new file mode 100644 index 0000000000..f9762bafd2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-1.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: "15.2.3.5-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-1.js", + + description: "Object.create throws TypeError if 'O' is undefined", + + test: function testcase() { + + try { + Object.create(undefined); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-2.js new file mode 100644 index 0000000000..d16e120568 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-2.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: "15.2.3.5-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-2.js", + + description: "Object.create TypeError is not thrown if 'O' is null", + + test: function testcase() { + try { + Object.create(null); + return true; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-3.js new file mode 100644 index 0000000000..8a3ff7340e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-3.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: "15.2.3.5-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-3.js", + + description: "Object.create throws TypeError if 'O' is a boolean primitive", + + test: function testcase() { + + try { + Object.create(true); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-4.js new file mode 100644 index 0000000000..a05069527c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-4.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: "15.2.3.5-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1-4.js", + + description: "Object.create throws TypeError if 'O' is a number primitive", + + test: function testcase() { + + try { + Object.create(2); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1.js new file mode 100644 index 0000000000..0064f2d351 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1.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: "15.2.3.5-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-1.js", + +description: "Object.create throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.create(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-2-1.js new file mode 100644 index 0000000000..9322aa829b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-2-1.js @@ -0,0 +1,47 @@ +/// 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. + +/* +create sets the [[Prototype]] of the created object to first parameter. +This can be checked using isPrototypeOf, or getPrototypeOf. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.5-2-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-2-1.js", + +description: "Object.create creates new Object", + +test: function testcase() { + function base() {} + var b = new base(); + var prop = new Object(); + var d = Object.create(b); + + if (typeof d === 'object') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-2-2.js new file mode 100644 index 0000000000..39b6b28a36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-2-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.5-2-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-2-2.js", + + description: "Object.create - returned object is an instance of Object", + + test: function testcase() { + + var newObj = Object.create({}); + return newObj instanceof Object; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-3-1.js new file mode 100644 index 0000000000..120200ec45 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-3-1.js @@ -0,0 +1,47 @@ +/// 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. + +/* +create sets the [[Prototype]] of the created object to first parameter. +This can be checked using isPrototypeOf, or getPrototypeOf. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.5-3-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-3-1.js", + +description: "Object.create sets the prototype of the passed-in object", + +test: function testcase() { + function base() {} + var b = new base(); + var d = Object.create(b); + + if (Object.getPrototypeOf(d) === b && + b.isPrototypeOf(d) === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-1.js new file mode 100644 index 0000000000..58820f6569 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-1.js @@ -0,0 +1,53 @@ +/// 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. + +/* +create sets the [[Prototype]] of the created object to first parameter. +This can be checked using isPrototypeOf, or getPrototypeOf. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.5-4-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-1.js", + +description: "Object.create sets the prototype of the passed-in object and adds new properties", + +test: function testcase() { + function base() {} + var b = new base(); + var prop = new Object(); + var d = Object.create(b,{ "x": {value: true,writable: false}, + "y": {value: "str",writable: false} }); + + if (Object.getPrototypeOf(d) === b && + b.isPrototypeOf(d) === true && + d.x === true && + d.y === "str" && + b.x === undefined && + b.y === undefined) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-10.js new file mode 100644 index 0000000000..e039d31daf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-10.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-10.js", + + description: "Object.create - argument 'Properties' is the Math object (15.2.3.7 step 2)", + + test: function testcase() { + + var result = false; + Object.defineProperty(Math, "prop", { + get: function () { + result = (this === Math); + return {}; + }, + enumerable: true, + configurable: true + }); + + try { + var newObj = Object.create({}, Math); + return result && newObj.hasOwnProperty("prop"); + } finally { + delete Math.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-100.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-100.js new file mode 100644 index 0000000000..7104f51b97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-100.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-100", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-100.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is not present (8.10.5 step 4)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + value: "ownDataProperty" + } + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-101.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-101.js new file mode 100644 index 0000000000..78d46a65f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-101.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-101", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-101.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is own data property (8.10.5 step 4.a)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: false + } + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-102.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-102.js new file mode 100644 index 0000000000..724c7696a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-102.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.5-4-102", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-102.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is an inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + + var proto = { + configurable: true + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-103.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-103.js new file mode 100644 index 0000000000..691a08e310 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-103.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.5-4-103", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-103.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is own data property that overrides an inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + + var proto = { + configurable: true + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "configurable", { + value: false + }); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-104.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-104.js new file mode 100644 index 0000000000..8e381f02ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-104.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.5-4-104", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-104.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is own data property that overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "configurable", { + value: false + }); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-105.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-105.js new file mode 100644 index 0000000000..b2d3ff714b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-105.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-105", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-105.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is own accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = {}; + Object.defineProperty(descObj, "configurable", { + get: function () { + return true; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-106.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-106.js new file mode 100644 index 0000000000..0138b8d66e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-106.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.5-4-106", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-106.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-107.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-107.js new file mode 100644 index 0000000000..aa80dff133 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-107.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.5-4-107", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-107.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is own accessor property that overrides an inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + + var proto = { + configurable: true + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "configurable", { + get: function () { + return false; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-108.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-108.js new file mode 100644 index 0000000000..40580af6c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-108.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.5-4-108", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-108.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is own accessor property that overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "configurable", { + get: function () { + return false; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-109.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-109.js new file mode 100644 index 0000000000..5edf233166 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-109.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-109", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-109.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is own accessor property without a get function (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = {}; + Object.defineProperty(descObj, "configurable", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-11.js new file mode 100644 index 0000000000..9eec60029d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-11.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-11.js", + + description: "Object.create - argument 'Properties' is a Date object (15.2.3.7 step 2)", + + test: function testcase() { + + var props = new Date(); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Date; + return {}; + }, + enumerable: true + }); + var newObj = Object.create({}, props); + return result && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-110.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-110.js new file mode 100644 index 0000000000..0ff2ce92a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-110.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.5-4-110", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-110.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is own accessor property without a get function, which overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "configurable", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-111.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-111.js new file mode 100644 index 0000000000..8f34fb83b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-111.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.5-4-111", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-111.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is an inherited accessor property without a get function (8.10.5 step 4.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "configurable", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-112.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-112.js new file mode 100644 index 0000000000..ae0ca525dc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-112.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-112", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-112.js", + + description: "Object.create - one property in 'Properties' is a Function object which implements its own [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = function () { }; + + descObj.configurable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-113.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-113.js new file mode 100644 index 0000000000..9bebba1dd2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-113.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-113", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-113.js", + + description: "Object.create - one property in 'Properties' is an Array object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = []; + + descObj.configurable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-114.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-114.js new file mode 100644 index 0000000000..11e2a90fff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-114.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-114", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-114.js", + + description: "Object.create - one property in 'Properties' is a String object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = new String(); + + descObj.configurable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-115.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-115.js new file mode 100644 index 0000000000..08d50b6bfb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-115.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-115", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-115.js", + + description: "Object.create - one property in 'Properties' is a Boolean object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = new Boolean(false); + + descObj.configurable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-116.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-116.js new file mode 100644 index 0000000000..f401ab1180 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-116.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-116", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-116.js", + + description: "Object.create - one property in 'Properties' is a Number object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = new Number(-9); + + descObj.configurable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-117.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-117.js new file mode 100644 index 0000000000..b363d29457 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-117.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-117", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-117.js", + + description: "Object.create - one property in 'Properties' is the Math object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + try { + Math.configurable = true; + + var newObj = Object.create({}, { + prop: Math + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + } finally { + delete Math.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-118.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-118.js new file mode 100644 index 0000000000..8b186d57b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-118.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-118", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-118.js", + + description: "Object.create - one property in 'Properties' is a Date object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = new Date(); + + descObj.configurable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-119.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-119.js new file mode 100644 index 0000000000..535a0ed187 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-119.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-119", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-119.js", + + description: "Object.create - one property in 'Properties' is a Date object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = new RegExp(); + + descObj.configurable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-12.js new file mode 100644 index 0000000000..9e6bbea3a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-12.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-12.js", + + description: "Object.create - argument 'Properties' is a RegExp object (15.2.3.7 step 2)", + + test: function testcase() { + + var props = new RegExp(); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof RegExp; + return {}; + }, + enumerable: true + }); + var newObj = Object.create({}, props); + return result && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-120.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-120.js new file mode 100644 index 0000000000..ecd606122d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-120.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-120", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-120.js", + + description: "Object.create - one property in 'Properties' is the JSON object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + try { + JSON.configurable = true; + + var newObj = Object.create({}, { + prop: JSON + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + } finally { + delete JSON.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-121.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-121.js new file mode 100644 index 0000000000..0a8a7b96cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-121.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-121", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-121.js", + + description: "Object.create - one property in 'Properties' is an Error object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var descObj = new Error(); + + descObj.configurable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-122.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-122.js new file mode 100644 index 0000000000..037e51d936 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-122.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-122", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-122.js", + + description: "Object.create - one property in 'Properties' is an Arguments object which implements its own [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var argObj = (function () { return arguments; })(); + + argObj.configurable = true; + + var newObj = Object.create({}, { + prop: argObj + }); + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-124.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-124.js new file mode 100644 index 0000000000..a6f9f4527f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-124.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-124", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-124.js", + + description: "Object.create - one property in 'Properties' is the global object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + try { + fnGlobalObject().configurable = true; + + var newObj = Object.create({}, { + prop: fnGlobalObject() + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + } finally { + delete fnGlobalObject().configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-125.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-125.js new file mode 100644 index 0000000000..08b761019f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-125.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-125", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-125.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is undefined (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: undefined + } + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-126.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-126.js new file mode 100644 index 0000000000..5ba1ded890 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-126.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-126", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-126.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is null (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: null + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-127.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-127.js new file mode 100644 index 0000000000..ad1a711e06 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-127.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-127", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-127.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is true (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: true + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-128.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-128.js new file mode 100644 index 0000000000..6212b57d7d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-128.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-128", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-128.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is false (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: false + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-129.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-129.js new file mode 100644 index 0000000000..01ad4515c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-129.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-129", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-129.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is 0 (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: 0 + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-13.js new file mode 100644 index 0000000000..83d42a9959 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-13.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-13.js", + + description: "Object.create - argument 'Properties' is the JSON object (15.2.3.7 step 2)", + + test: function testcase() { + + var result = false; + + Object.defineProperty(JSON, "prop", { + get: function () { + result = (this === JSON); + return {}; + }, + enumerable: true, + configurable: true + }); + + try { + var newObj = Object.create({}, JSON); + return result && newObj.hasOwnProperty("prop"); + } finally { + delete JSON.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-130.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-130.js new file mode 100644 index 0000000000..ee08f5b348 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-130.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-130", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-130.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is +0 (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: +0 + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-131.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-131.js new file mode 100644 index 0000000000..32c87a5e5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-131.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-131", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-131.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is -0 (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: -0 + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-132.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-132.js new file mode 100644 index 0000000000..02027baa14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-132.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-132", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-132.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is NaN (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: NaN + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-133.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-133.js new file mode 100644 index 0000000000..aac60fa10d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-133.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-133", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-133.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a positive number (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: 123 + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-134.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-134.js new file mode 100644 index 0000000000..2ca8b4ce0b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-134.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-134", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-134.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a negative number (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: -123 + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-135.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-135.js new file mode 100644 index 0000000000..5fdce5b555 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-135.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-135", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-135.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is an empty string (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: "" + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-136.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-136.js new file mode 100644 index 0000000000..75d5d08764 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-136.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-136", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-136.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a non-empty string (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: "abc" + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-137.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-137.js new file mode 100644 index 0000000000..3354993043 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-137.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-137", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-137.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a Function object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: function () { } + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-138.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-138.js new file mode 100644 index 0000000000..c96b17d84c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-138.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-138", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-138.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is an Array object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: [] + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-139.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-139.js new file mode 100644 index 0000000000..e245964b51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-139.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-139", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-139.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a String object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: new String("abc") + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-14.js new file mode 100644 index 0000000000..bc0a85c227 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-14.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-14.js", + + description: "Object.create - argument 'Properties' is an Error object (15.2.3.7 step 2)", + + test: function testcase() { + + var props = new Error("test"); + var result = false; + + (Object.getOwnPropertyNames(props)).forEach(function(name){ + props[name] = {value:11, configurable:true} + }); + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Error; + return {}; + }, + enumerable: true + }); + var newObj = Object.create({}, props); + return result && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty) && fnExists(Array.prototype.forEach) && fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-140.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-140.js new file mode 100644 index 0000000000..0d30c5bccd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-140.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-140", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-140.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a Boolean object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: new Boolean(true) + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-141.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-141.js new file mode 100644 index 0000000000..a04caa4cc7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-141.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-141", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-141.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a Number object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: new Number(123) + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-142.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-142.js new file mode 100644 index 0000000000..705e848d35 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-142.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-142", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-142.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is the Math object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: Math + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-143.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-143.js new file mode 100644 index 0000000000..54befd6f0d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-143.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-143", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-143.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a Date object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: new Date() + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-144.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-144.js new file mode 100644 index 0000000000..5a5d4f05d9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-144.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-144", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-144.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a RegExp object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: new RegExp() + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-145.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-145.js new file mode 100644 index 0000000000..500b66df04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-145.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-145", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-145.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is the JSON object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: JSON + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-146.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-146.js new file mode 100644 index 0000000000..8165d108f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-146.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-146", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-146.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is an Error object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: new Error() + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-147.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-147.js new file mode 100644 index 0000000000..27fe67f039 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-147.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-147", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-147.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is an Arguments object (8.10.5 step 4.b)", + + test: function testcase() { + + var argObj = (function () { return arguments; })(); + + var newObj = Object.create({}, { + prop: { + configurable: argObj + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-149.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-149.js new file mode 100644 index 0000000000..4753b01853 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-149.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-149", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-149.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is the global object (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: fnGlobalObject() + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-15.js new file mode 100644 index 0000000000..aa13266fa7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-15.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-15.js", + + description: "Object.create - argument 'Properties' is the Aguments object (15.2.3.7 step 2)", + + test: function testcase() { + + var result = false; + + var argObj = (function () { return arguments; })(); + + Object.defineProperty(argObj, "prop", { + get: function () { + result = ('[object Arguments]' === Object.prototype.toString.call(this)); + return {}; + }, + enumerable: true + }); + + var newObj = Object.create({}, argObj); + return result && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-150.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-150.js new file mode 100644 index 0000000000..e493ace730 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-150.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-150", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-150.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is a string (value is 'false') which is treated as the value true (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: "false" + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-151.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-151.js new file mode 100644 index 0000000000..94e3c11d2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-151.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-151", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-151.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is new Boolean(false) which is treated as the value true (8.10.5 step 4.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: new Boolean(false) + } + }); + + var beforeDeleted = newObj.hasOwnProperty("prop"); + + delete newObj.prop; + + var afterDeleted = newObj.hasOwnProperty("prop"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-152.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-152.js new file mode 100644 index 0000000000..2135e62f2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-152.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: "15.2.3.5-4-152", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-152.js", + + description: "Object.create - 'value' property of one property in 'Properties' is present (8.10.5 step 5)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + value: 100 + } + }); + + return newObj.prop === 100; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-153.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-153.js new file mode 100644 index 0000000000..476a68435b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-153.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: "15.2.3.5-4-153", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-153.js", + + description: "Object.create - 'value' property of one property in 'Properties' is not present (8.10.5 step 5)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: {} + }); + + return newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-154.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-154.js new file mode 100644 index 0000000000..147fed6da4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-154.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: "15.2.3.5-4-154", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-154.js", + + description: "Object.create - 'value' property of one property in 'Properties' is own data property (8.10.5 step 5.a)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + value: "ownDataProperty" + } + }); + + return newObj.prop === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-155.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-155.js new file mode 100644 index 0000000000..f066ca65ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-155.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-155", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-155.js", + + description: "Object.create - 'value' property of one property in 'Properties' is an inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + + var proto = { + value: "inheritedDataProperty" + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "inheritedDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-156.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-156.js new file mode 100644 index 0000000000..3f1db645ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-156.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-156", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-156.js", + + description: "Object.create - 'value' property of one property in 'Properties' is own data property that overrides an inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + + var proto = { + value: "inheritedDataProperty" + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + descObj.value = "ownDataProperty"; + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-157.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-157.js new file mode 100644 index 0000000000..6128b14784 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-157.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.5-4-157", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-157.js", + + description: "Object.create - 'value' property of one property in 'Properties' is own data property that overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "value", { + get: function () { + return "ownDataProperty"; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-158.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-158.js new file mode 100644 index 0000000000..c9feb4634e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-158.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-158", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-158.js", + + description: "Object.create - 'value' property of one property in 'Properties' is own accessor property (8.10.5 step 5.a)", + + test: function testcase() { + + var descObj = {}; + + Object.defineProperty(descObj, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-159.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-159.js new file mode 100644 index 0000000000..aa4ccc0659 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-159.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.5-4-159", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-159.js", + + description: "Object.create - 'value' property of one property in 'Properties' is an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "inheritedAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-16.js new file mode 100644 index 0000000000..1374110180 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-16.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.5-4-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-16.js", + + description: "Object.create - own enumerable data property in 'Properties' is defined in 'obj' (15.2.3.7 step 3)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: {} + }); + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-160.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-160.js new file mode 100644 index 0000000000..47ba1782d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-160.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.5-4-160", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-160.js", + + description: "Object.create - 'value' property of one property in 'Properties' is own accessor property that overrides an inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + + var proto = { + value: "inheritedDataProperty" + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-161.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-161.js new file mode 100644 index 0000000000..fb944649e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-161.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.5-4-161", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-161.js", + + description: "Object.create - 'value' property of one property in 'Properties' is own accessor property that overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-162.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-162.js new file mode 100644 index 0000000000..bdfc301976 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-162.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-162", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-162.js", + + description: "Object.create - 'value' property of one property in 'Properties' is own accessor property without a get function (8.10.5 step 5.a)", + + test: function testcase() { + + var descObj = {}; + + Object.defineProperty(descObj, "value", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-163.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-163.js new file mode 100644 index 0000000000..56d4b06d53 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-163.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.5-4-163", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-163.js", + + description: "Object.create - 'value' property of one property in 'Properties' is own accessor property without a get function, which overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "value", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-164.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-164.js new file mode 100644 index 0000000000..0d586ea60a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-164.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-164", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-164.js", + + description: "Object.create - 'value' property of one property in 'Properties' is an inherited accessor property without a get function (8.10.5 step 5.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "value", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-165.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-165.js new file mode 100644 index 0000000000..3a7f5bc671 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-165.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-165", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-165.js", + + description: "Object.create - one property in 'Properties' is a Function object which implements its own [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var Func = function (a, b) { + return a + b; + }; + + var fun = new Func(); + fun.value = "FunValue"; + + var newObj = Object.create({}, { + prop: fun + }); + return newObj.prop === "FunValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-166.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-166.js new file mode 100644 index 0000000000..1a20caf87f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-166.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-166", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-166.js", + + description: "Object.create - one property in 'Properties' is an Array object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var arr = [1, 2, 3]; + + arr.value = "ArrValue"; + + var newObj = Object.create({}, { + prop: arr + }); + + return newObj.prop === "ArrValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-167.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-167.js new file mode 100644 index 0000000000..21936355b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-167.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-167", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-167.js", + + description: "Object.create - one property in 'Properties' is a String object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var str = new String("abc"); + + str.value = "StrValue"; + + var newObj = Object.create({}, { + prop: str + }); + + return newObj.prop === "StrValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-168.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-168.js new file mode 100644 index 0000000000..e8a53c4eeb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-168.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-168", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-168.js", + + description: "Object.create - one property in 'Properties' is a Boolean object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var booleanObj = new Boolean(false); + + booleanObj.value = "BooleanValue"; + + var newObj = Object.create({}, { + prop: booleanObj + }); + + return newObj.prop === "BooleanValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-169.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-169.js new file mode 100644 index 0000000000..574217c52d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-169.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-169", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-169.js", + + description: "Object.create - one property in 'Properties' is a Number object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var numObj = new Number(123); + + numObj.value = "NumValue"; + + var newObj = Object.create({}, { + prop: numObj + }); + + return newObj.prop === "NumValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-17.js new file mode 100644 index 0000000000..f38057c6bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-17.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-17.js", + + description: "Object.create - own data property in 'Properties' which is not enumerable is not defined in 'obj' (15.2.3.7 step 3)", + + test: function testcase() { + + var props = {}; + Object.defineProperty(props, "prop", { + value: {}, + enumerable: false + }); + var newObj = Object.create({}, props); + + return !newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-170.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-170.js new file mode 100644 index 0000000000..9997529df0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-170.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-170", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-170.js", + + description: "Object.create - one property in 'Properties' is the Math object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + try { + Math.value = "MathValue"; + + var newObj = Object.create({}, { + prop: Math + }); + + return newObj.prop === "MathValue"; + } finally { + delete Math.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-171.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-171.js new file mode 100644 index 0000000000..301158c24a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-171.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-171", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-171.js", + + description: "Object.create - one property in 'Properties' is a Date object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var dateObj = new Date(); + + dateObj.value = "DateValue"; + + var newObj = Object.create({}, { + prop: dateObj + }); + + return newObj.prop === "DateValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-172.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-172.js new file mode 100644 index 0000000000..b2b18dbe0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-172.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-172", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-172.js", + + description: "Object.create - one property in 'Properties' is a RegExp object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var regObj = new RegExp(); + + regObj.value = "RegExpValue"; + + var newObj = Object.create({}, { + prop: regObj + }); + + return newObj.prop === "RegExpValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-173.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-173.js new file mode 100644 index 0000000000..96afce3900 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-173.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-173", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-173.js", + + description: "Object.create - one property in 'Properties' is the JSON object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + try { + JSON.value = "JSONValue"; + + var newObj = Object.create({}, { + prop: JSON + }); + + return newObj.prop === "JSONValue"; + } finally { + delete JSON.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-174.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-174.js new file mode 100644 index 0000000000..df2d0ccce9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-174.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-174", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-174.js", + + description: "Object.create - one property in 'Properties' is an Error object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var errorObj = new Error(); + + errorObj.value = "ErrorValue"; + + var newObj = Object.create({}, { + prop: errorObj + }); + + return newObj.prop === "ErrorValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-175.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-175.js new file mode 100644 index 0000000000..e2dd27913f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-175.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-175", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-175.js", + + description: "Object.create - one property in 'Properties' is an Arguments object which implements its own [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + var argObj = (function () { return arguments; })(); + + argObj.value = "ArgValue"; + + var newObj = Object.create({}, { + prop: argObj + }); + + return newObj.prop === "ArgValue"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-177.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-177.js new file mode 100644 index 0000000000..8ba7cfe4e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-177.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-177", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-177.js", + + description: "Object.create - one property in 'Properties' is the global object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + + try { + fnGlobalObject().value = "GlobalValue"; + + var newObj = Object.create({}, { + prop: fnGlobalObject() + }); + + return newObj.prop === "GlobalValue"; + } finally { + delete fnGlobalObject().value; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-178.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-178.js new file mode 100644 index 0000000000..d70a5a6a97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-178.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-178", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-178.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is true (8.10.5 step 6)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: true + } + }); + + var beforeWrite = ((newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined")); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-179.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-179.js new file mode 100644 index 0000000000..0f42f10639 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-179.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-179", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-179.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is not present (8.10.5 step 6)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + value: 100 + } + }); + + var beforeWrite = (newObj.prop === 100); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === 100); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-18.js new file mode 100644 index 0000000000..c88421f2db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-18.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-18.js", + + description: "Object.create - an enumerable inherited data property in 'Properties' is not defined in 'obj' (15.2.3.7 step 3)", + + test: function testcase() { + + var proto = {}; + + proto.prop = {}; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + + var newObj = Object.create({}, child); + + return !newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-180.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-180.js new file mode 100644 index 0000000000..2397280ef4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-180.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-180", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-180.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is own data property (8.10.5 step 6.a)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: true + } + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-181.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-181.js new file mode 100644 index 0000000000..514401cc96 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-181.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.5-4-181", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-181.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is an inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + + var proto = { + writable: true + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-182.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-182.js new file mode 100644 index 0000000000..209281c854 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-182.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.5-4-182", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-182.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is own data property that overrides an inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + + var proto = { + writable: false + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + descObj.writable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-183.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-183.js new file mode 100644 index 0000000000..82689a24c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-183.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.5-4-183", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-183.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is own data property that overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "writable", { + get: function () { + return false; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "writable", { + value: true + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-184.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-184.js new file mode 100644 index 0000000000..06d2df08a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-184.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: "15.2.3.5-4-184", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-184.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is own accessor property (8.10.5 step 6.a)", + + test: function testcase() { + + var descObj = {}; + + Object.defineProperty(descObj, "writable", { + get: function () { + return true; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-185.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-185.js new file mode 100644 index 0000000000..e3f56e5421 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-185.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.5-4-185", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-185.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "writable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-186.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-186.js new file mode 100644 index 0000000000..8a61966631 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-186.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.5-4-186", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-186.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is own accessor property that overrides an inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + + var proto = { + writable: false + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "writable", { + get: function () { + return true; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-187.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-187.js new file mode 100644 index 0000000000..9f2d2d904a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-187.js @@ -0,0 +1,66 @@ +/// 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: "15.2.3.5-4-187", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-187.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is own accessor property that overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "writable", { + get: function () { + return false; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "writable", { + get: function () { + return true; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-188.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-188.js new file mode 100644 index 0000000000..1a36de596e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-188.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-188", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-188.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is own accessor property without a get function (8.10.5 step 6.a)", + + test: function testcase() { + + var descObj = { value: 100 }; + + Object.defineProperty(descObj, "writable", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.prop === 100); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === 100); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-189.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-189.js new file mode 100644 index 0000000000..2f5b971f48 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-189.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.5-4-189", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-189.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is own accessor property without a get function, which overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "writable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "writable", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === false; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-19.js new file mode 100644 index 0000000000..274191c884 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-19.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-19.js", + + description: "Object.create - own enumerable accessor property in 'Properties' is defined in 'obj' (15.2.3.7 step 3)", + + test: function testcase() { + + var props = {}; + + Object.defineProperty(props, "prop", { + get: function () { + return {}; + }, + enumerable: true + }); + + var newObj = Object.create({}, props); + + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-190.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-190.js new file mode 100644 index 0000000000..1a00634085 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-190.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.5-4-190", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-190.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is an inherited accessor property without a get function (8.10.5 step 6.a)", + + test: function testcase() { + + var proto = { value: 100 }; + + Object.defineProperty(proto, "writable", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + var beforeWrite = (newObj.prop === 100); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === 100); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-191.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-191.js new file mode 100644 index 0000000000..16b21e2c9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-191.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.5-4-191", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-191.js", + + description: "Object.create - one property in 'Properties' is a Function object which implements its own [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var Func = function (a, b) { + return a + b; + }; + + var fun = new Func(); + fun.writable = true; + + var newObj = Object.create({}, { + prop: fun + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-192.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-192.js new file mode 100644 index 0000000000..e4ca075c66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-192.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-192", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-192.js", + + description: "Object.create - one property in 'Properties' is an Array object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var array = [1, 2, 3]; + + array.writable = true; + + var newObj = Object.create({}, { + prop: array + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-193.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-193.js new file mode 100644 index 0000000000..13487414af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-193.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-193", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-193.js", + + description: "Object.create - one property in 'Properties' is a String object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var str = new String("abc"); + + str.writable = true; + + var newObj = Object.create({}, { + prop: str + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-194.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-194.js new file mode 100644 index 0000000000..f9a1651502 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-194.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-194", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-194.js", + + description: "Object.create - one property in 'Properties' is a Boolean object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var booleanObj = new Boolean(false); + + booleanObj.writable = true; + + var newObj = Object.create({}, { + prop: booleanObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-195.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-195.js new file mode 100644 index 0000000000..d696dee1d9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-195.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-195", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-195.js", + + description: "Object.create - one property in 'Properties' is a Number object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var numObj = new Number(123); + + numObj.writable = true; + + var newObj = Object.create({}, { + prop: numObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-196.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-196.js new file mode 100644 index 0000000000..f33c5da43f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-196.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-196", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-196.js", + + description: "Object.create - one property in 'Properties' is the Math object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + try { + Math.writable = true; + + var newObj = Object.create({}, { + prop: Math + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Math.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-197.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-197.js new file mode 100644 index 0000000000..89ec945254 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-197.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-197", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-197.js", + + description: "Object.create - one property in 'Properties' is a Date object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var dateObj = new Date(); + + dateObj.writable = true; + + var newObj = Object.create({}, { + prop: dateObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-198.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-198.js new file mode 100644 index 0000000000..c986d7587b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-198.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-198", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-198.js", + + description: "Object.create - one property in 'Properties' is a RegExp object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var regObj = new RegExp(); + + regObj.writable = true; + + var newObj = Object.create({}, { + prop: regObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-199.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-199.js new file mode 100644 index 0000000000..0cc8853f8a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-199.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-199", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-199.js", + + description: "Object.create - one property in 'Properties' is the JSON object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + try { + JSON.writable = true; + + var newObj = Object.create({}, { + prop: JSON + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete JSON.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-2.js new file mode 100644 index 0000000000..3a9c09011d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.5-4-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-2.js", + + description: "Object.create - 'Properties' is undefined", + + test: function testcase() { + + var newObj = Object.create({}, undefined); + return (newObj instanceof Object); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-20.js new file mode 100644 index 0000000000..fd9054f1a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-20.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-20.js", + + description: "Object.create - own accessor property in 'Properties' which is not enumerable is not defined in 'obj' (15.2.3.7 step 3)", + + test: function testcase() { + + var props = {}; + + Object.defineProperty(props, "prop", { + get: function () { + return {}; + }, + enumerable: false + }); + + var newObj = Object.create({}, props); + + return !newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-200.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-200.js new file mode 100644 index 0000000000..a9961666ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-200.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-200", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-200.js", + + description: "Object.create - one property in 'Properties' is an Error object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var errorObj = new Error(); + + errorObj.writable = true; + + var newObj = Object.create({}, { + prop: errorObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-201.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-201.js new file mode 100644 index 0000000000..635bbcd74b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-201.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-201", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-201.js", + + description: "Object.create - one property in 'Properties' is an Arguments object which implements its own [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var argObj = (function () { return arguments; })(); + + argObj.writable = true; + + var newObj = Object.create({}, { + prop: argObj + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-203.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-203.js new file mode 100644 index 0000000000..ef4d758101 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-203.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-203", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-203.js", + + description: "Object.create - one property in 'Properties' is the global object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + try { + fnGlobalObject().writable = true; + + var newObj = Object.create({}, { + prop: fnGlobalObject() + }); + + var beforeWrite = (newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"); + + newObj.prop = "isWritable"; + + var afterWrite = (newObj.prop === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete fnGlobalObject().writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-204.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-204.js new file mode 100644 index 0000000000..4d1650347c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-204.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-204", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-204.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is undefined (8.10.5 step 6.b)", + + test: function testcase() { + var newObj = Object.create({}, { + prop: { + writable: undefined + } + }); + + var hasProperty = newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + + newObj.prop = 121; + + return hasProperty && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-205.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-205.js new file mode 100644 index 0000000000..af3c2a0f8d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-205.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-205", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-205.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is null (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: null + } + }); + var hasProperty = newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + + newObj.prop = 121; + + return hasProperty && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-206.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-206.js new file mode 100644 index 0000000000..ffdeec5398 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-206.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-206", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-206.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is true (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: true + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-207.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-207.js new file mode 100644 index 0000000000..c97c717753 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-207.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-207", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-207.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is false (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: false + } + }); + var hasProperty = newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + + newObj.prop = 121; + + return hasProperty && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-208.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-208.js new file mode 100644 index 0000000000..d1e82ea410 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-208.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-208", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-208.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is 0 (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: 0 + } + }); + var hasProperty = newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + + newObj.prop = 121; + + return hasProperty && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-209.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-209.js new file mode 100644 index 0000000000..b91f744172 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-209.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-209", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-209.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is +0 (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: +0 + } + }); + var hasProperty = newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + + newObj.prop = 121; + + return hasProperty && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-21.js new file mode 100644 index 0000000000..bb081d9828 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-21.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-21.js", + + description: "Object.create - an enumerable inherited accessor property in 'Properties' is not defined in 'obj' (15.2.3.7 step 3)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "prop", { + get: function () { + return {}; + }, + enumerable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + + var newObj = Object.create({}, child); + + return !newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-210.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-210.js new file mode 100644 index 0000000000..dffa42320b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-210.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-210", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-210.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is -0 (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: -0 + } + }); + var hasProperty = newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + + newObj.prop = 121; + + return hasProperty && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-211.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-211.js new file mode 100644 index 0000000000..b916530aa8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-211.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-211", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-211.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is NaN (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: NaN + } + }); + var hasProperty = newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + + newObj.prop = 121; + + return hasProperty && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-212.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-212.js new file mode 100644 index 0000000000..9a92b1623f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-212.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-212", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-212.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a positive number primitive (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: 12 + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-213.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-213.js new file mode 100644 index 0000000000..8e3f6c1bbe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-213.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-213", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-213.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a negative number primitive (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: -9 + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-214.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-214.js new file mode 100644 index 0000000000..abc2cfda13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-214.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-214", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-214.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is an empty string (8.10.5 step 6.b)", + + test: function testcase() { + var descObj = { + writable: "" + }; + + var newObj = Object.create({}, { + prop: descObj + }); + var hasProperty = newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + + newObj.prop = 121; + + return hasProperty && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-215.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-215.js new file mode 100644 index 0000000000..c29c881bf4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-215.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-215", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-215.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a non-empty string (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: "abc" + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-216.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-216.js new file mode 100644 index 0000000000..4518e50fb0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-216.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-216", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-216.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a Function object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: function () { } + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-217.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-217.js new file mode 100644 index 0000000000..ea6570fcf5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-217.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-217", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-217.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is an Array object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: [] + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-218.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-218.js new file mode 100644 index 0000000000..80904c24c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-218.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-218", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-218.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a String object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: new String() + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-219.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-219.js new file mode 100644 index 0000000000..f4617e53c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-219.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-219", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-219.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a Boolean object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: new Boolean() + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-22.js new file mode 100644 index 0000000000..085283736d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-22.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-22.js", + + description: "Object.create - own enumerable data property that overrides an enumerable inherited data property in 'Properties' is defined in 'obj' (15.2.3.7 step 5.a)", + + test: function testcase() { + + var proto = {}; + proto.prop = { + value: "abc" + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + child.prop = { + value: "bbq" + }; + var newObj = Object.create({}, child); + + return newObj.hasOwnProperty("prop") && newObj.prop === "bbq"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-220.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-220.js new file mode 100644 index 0000000000..84e9a3d94e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-220.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-220", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-220.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a Number object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: new Number() + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-221.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-221.js new file mode 100644 index 0000000000..5024190e78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-221.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-221", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-221.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is the Math object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: Math + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-222.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-222.js new file mode 100644 index 0000000000..28467c12e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-222.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-222", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-222.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a Date object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: new Date() + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-223.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-223.js new file mode 100644 index 0000000000..2b298c7cd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-223.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-223", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-223.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a RegExp object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: new RegExp() + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-224.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-224.js new file mode 100644 index 0000000000..ae4ea094ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-224.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-224", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-224.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is the JSON object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: JSON + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + newObj.prop = 121; + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-225.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-225.js new file mode 100644 index 0000000000..cc06222988 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-225.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-225", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-225.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is an Error object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: new Error() + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + newObj.prop = 121; + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-226.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-226.js new file mode 100644 index 0000000000..e4d381ceb0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-226.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-226", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-226.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is an Arguments object (8.10.5 step 6.b)", + + test: function testcase() { + + var argObj = (function () { return arguments; })(); + + var newObj = Object.create({}, { + prop: { + writable: argObj + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-228.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-228.js new file mode 100644 index 0000000000..504ff2d7cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-228.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-228", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-228.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is the global object (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: fnGlobalObject() + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-229.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-229.js new file mode 100644 index 0000000000..c7cc623399 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-229.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-229", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-229.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is a string (value is 'false') which is treated as the value true (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: "false" + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-23.js new file mode 100644 index 0000000000..042073c150 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-23.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.5-4-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-23.js", + + description: "Object.create - own enumerable data property that overrides an enumerable inherited accessor property in 'Properties' is defined in 'obj' (15.2.3.7 step 5.a)", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function () { + return { value: 9 }; + }, + enumerable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "prop", { + value: { + value: 12 + }, + enumerable: true + }); + var newObj = Object.create({}, child); + + return newObj.hasOwnProperty("prop") && newObj.prop === 12; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-230.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-230.js new file mode 100644 index 0000000000..a814e0d9f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-230.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-230", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-230.js", + + description: "Object.create - 'writable' property of one property in 'Properties' is new Boolean(false) which is treated as the value true (8.10.5 step 6.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + writable: new Boolean(false) + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 121; + + return hasProperty && newObj.prop === 121; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-231.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-231.js new file mode 100644 index 0000000000..5fd79c8985 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-231.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-231", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-231.js", + + description: "Object.create - 'get' property of one property in 'Properties' is present (8.10.5 step 7)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + get: function () { + return "present"; + } + } + }); + return newObj.prop === "present"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-232.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-232.js new file mode 100644 index 0000000000..c3c4d2be8e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-232.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.5-4-232", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-232.js", + + description: "Object.create - 'get' property of one property in 'Properties' is not present (8.10.5 step 7)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: {} + }); + return typeof (newObj.prop) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-233.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-233.js new file mode 100644 index 0000000000..d0f641278c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-233.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-233", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-233.js", + + description: "Object.create - 'get' property of one property in 'Properties' is own data property (8.10.5 step 7.a)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + get: function () { + return "ownDataProperty"; + } + } + }); + return newObj.prop === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-234.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-234.js new file mode 100644 index 0000000000..233d47a0ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-234.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-234", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-234.js", + + description: "Object.create - 'get' property of one property in 'Properties' is an inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + + var proto = { + get: function () { + return "inheritedDataProperty"; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "inheritedDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-235.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-235.js new file mode 100644 index 0000000000..4c91b5d76e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-235.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.5-4-235", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-235.js", + + description: "Object.create - 'get' property of one property in 'Properties' is own data property that overrides an inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + + var proto = { + get: function () { + return "inheritedDataProperty"; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "get", { + value: function () { + return "ownDataProperty"; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-236.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-236.js new file mode 100644 index 0000000000..f35677ae4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-236.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.5-4-236", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-236.js", + + description: "Object.create - 'get' property of one property in 'Properties' is own data property that overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "get", { + value: function () { + return "ownDataProperty"; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-237.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-237.js new file mode 100644 index 0000000000..97b0fd7f89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-237.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-237", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-237.js", + + description: "Object.create - 'get' property of one property in 'Properties' is own accessor property (8.10.5 step 7.a)", + + test: function testcase() { + + var descObj = {}; + + Object.defineProperty(descObj, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-238.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-238.js new file mode 100644 index 0000000000..5df125d523 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-238.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: "15.2.3.5-4-238", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-238.js", + + description: "Object.create - 'get' property of one property in 'Properties' is an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + + var proto = {}; + + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "inheritedAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-239.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-239.js new file mode 100644 index 0000000000..93ba74b4c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-239.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.5-4-239", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-239.js", + + description: "Object.create - 'get' property of one property in 'Properties' is own accessor property that overrides an inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + var proto = { + get: function () { + return "inheritedDataProperty"; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-24.js new file mode 100644 index 0000000000..39e858d9a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-24.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.5-4-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-24.js", + + description: "Object.create - own enumerable accessor property that overrides an enumerable inherited data property in 'Properties' is defined in 'obj' (15.2.3.7 step 5.a)", + + test: function testcase() { + + var proto = {}; + proto.prop = { + value: 12 + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "prop", { + get: function () { + return { + value: 9 + }; + }, + enumerable: true + }); + + var newObj = Object.create({}, child); + + return newObj.hasOwnProperty("prop") && newObj.prop === 9; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-240.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-240.js new file mode 100644 index 0000000000..a7b08453f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-240.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.5-4-240", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-240.js", + + description: "Object.create - 'get' property of one property in 'Properties' is own accessor property that overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.prop === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-241.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-241.js new file mode 100644 index 0000000000..ef317a213c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-241.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-241", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-241.js", + + description: "Object.create - 'get' property of one property in 'Properties' is own accessor property without a get function (8.10.5 step 7.a)", + + test: function testcase() { + var descObj = {}; + + Object.defineProperty(descObj, "get", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-242.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-242.js new file mode 100644 index 0000000000..99cbd9f20f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-242.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.5-4-242", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-242.js", + + description: "Object.create - 'get' property of one property in 'Properties' is own accessor property without a get function, which overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "get", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-243.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-243.js new file mode 100644 index 0000000000..50281f9937 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-243.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-243", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-243.js", + + description: "Object.create - 'get' property of one property in 'Properties' is an inherited accessor property without a get function (8.10.5 step 7.a)", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "get", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + return newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-244.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-244.js new file mode 100644 index 0000000000..f0eb245519 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-244.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-244", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-244.js", + + description: "Object.create - one property in 'Properties' is a Function object which implements its own [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var funObj = function () {}; + + funObj.get = function () { + return "VerifyFunctionObject"; + }; + + var newObj = Object.create({}, { + prop: funObj + }); + + return newObj.prop === "VerifyFunctionObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-245.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-245.js new file mode 100644 index 0000000000..1841dd74b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-245.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-245", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-245.js", + + description: "Object.create - one property in 'Properties' is an Array object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var arrayObj = [1, 2, 3]; + + arrayObj.get = function () { + return "VerifyArrayObject"; + }; + + var newObj = Object.create({}, { + prop: arrayObj + }); + + return newObj.prop === "VerifyArrayObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-246.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-246.js new file mode 100644 index 0000000000..703387d4e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-246.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-246", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-246.js", + + description: "Object.create - one property in 'Properties' is a String object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var strObj = new String("abc"); + + strObj.get = function () { + return "VerifyStringObject"; + }; + + var newObj = Object.create({}, { + prop: strObj + }); + + return newObj.prop === "VerifyStringObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-247.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-247.js new file mode 100644 index 0000000000..2d97684e06 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-247.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-247", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-247.js", + + description: "Object.create - one property in 'Properties' is a Boolean object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var boolObj = new Boolean(true); + + boolObj.get = function () { + return "VerifyBooleanObject"; + }; + + var newObj = Object.create({}, { + prop: boolObj + }); + + return newObj.prop === "VerifyBooleanObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-248.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-248.js new file mode 100644 index 0000000000..cb0c2071b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-248.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-248", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-248.js", + + description: "Object.create - one property in 'Properties' is a Number object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var numObj = new Number(5); + + numObj.get = function () { + return "VerifyNumberObject"; + }; + + var newObj = Object.create({}, { + prop: numObj + }); + + return newObj.prop === "VerifyNumberObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-249.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-249.js new file mode 100644 index 0000000000..2ee93e436e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-249.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-249", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-249.js", + + description: "Object.create - one property in 'Properties' is a Date object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var dateObj = new Date(); + + dateObj.get = function () { + return "VerifyDateObject"; + }; + + var newObj = Object.create({}, { + prop: dateObj + }); + + return newObj.prop === "VerifyDateObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-25.js new file mode 100644 index 0000000000..58a15c36e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-25.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.5-4-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-25.js", + + description: "Object.create - own enumerable accessor property that overrides an enumerable inherited accessor property in 'Properties' is defined in 'obj' (15.2.3.7 step 5.a) ", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function () { + return { + value: 9 + }; + }, + enumerable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "prop", { + get: function () { + return { + value: 12 + }; + }, + enumerable: true + }); + var newObj = Object.create({}, child); + + return newObj.hasOwnProperty("prop") && newObj.prop === 12; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-250.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-250.js new file mode 100644 index 0000000000..7f55995e7b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-250.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-250", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-250.js", + + description: "Object.create - one property in 'Properties' is a RegExp object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var regObj = new RegExp(); + + regObj.get = function () { + return "VerifyRegExpObject"; + }; + + var newObj = Object.create({}, { + prop: regObj + }); + + return newObj.prop === "VerifyRegExpObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-251.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-251.js new file mode 100644 index 0000000000..a00f44a211 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-251.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-251", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-251.js", + + description: "Object.create - one property in 'Properties' is the Math object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + try { + Math.get = function () { + return "VerifyMathObject"; + }; + + var newObj = Object.create({}, { + prop: Math + }); + + return newObj.prop === "VerifyMathObject"; + } finally { + delete Math.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-252.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-252.js new file mode 100644 index 0000000000..bc325006b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-252.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-252", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-252.js", + + description: "Object.create - one property in 'Properties' is the JSON object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + JSON.get = function () { + return "VerifyJSONObject"; + }; + + try { + var newObj = Object.create({}, { + prop: JSON + }); + + return newObj.prop === "VerifyJSONObject"; + } finally { + delete JSON.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-253.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-253.js new file mode 100644 index 0000000000..81a72fd2cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-253.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-253", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-253.js", + + description: "Object.create - one property in 'Properties' is an Error object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var errObj = new Error("error"); + + errObj.get = function () { + return "VerifyErrorObject"; + }; + + var newObj = Object.create({}, { + prop: errObj + }); + + return newObj.prop === "VerifyErrorObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-254.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-254.js new file mode 100644 index 0000000000..858281041d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-254.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-254", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-254.js", + + description: "Object.create - one property in 'Properties' is an Arguments object which implements its own [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + + var argObj = (function () { return arguments; })(); + + argObj.get = function () { + return "VerifyArgumentsObject"; + }; + + var newObj = Object.create({}, { + prop: argObj + }); + + return newObj.prop === "VerifyArgumentsObject"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-256.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-256.js new file mode 100644 index 0000000000..b5f200a1f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-256.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-256", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-256.js", + + description: "Object.create - one property in 'Properties' is the global object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + fnGlobalObject().get = function () { + return "VerifyGlobalObject"; + }; + + try { + var newObj = Object.create({}, { + prop: fnGlobalObject() + }); + + return newObj.prop === "VerifyGlobalObject"; + } finally { + delete fnGlobalObject().get; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-257.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-257.js new file mode 100644 index 0000000000..23e11648fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-257.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: "15.2.3.5-4-257", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-257.js", + + description: "Object.create - 'get' property of one property in 'Properties' is undefined (8.10.5 step 7.b)", + + test: function testcase() { + var newObj = Object.create({}, { + prop: { + get: undefined + } + }); + + return newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-258.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-258.js new file mode 100644 index 0000000000..300ebee5f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-258.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-258", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-258.js", + + description: "Object.create - 'get' property of one property in 'Properties' is the primitive value null (8.10.5 step 7.b)", + + test: function testcase() { + try { + Object.create({}, { + prop: { + get: null + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-259.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-259.js new file mode 100644 index 0000000000..04632f92cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-259.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-259", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-259.js", + + description: "Object.create - 'get' property of one property in 'Properties' is a boolean primitive (8.10.5 step 7.b)", + + test: function testcase() { + try { + Object.create({}, { + prop: { + get: false + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-26.js new file mode 100644 index 0000000000..0fad9b703b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-26.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-26.js", + + description: "Object.create - TypeError is thrown when own enumerable accessor property of 'Properties' without a get function (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = {}; + Object.defineProperty(props, "prop", { + set: function () { }, + enumerable: true + }); + try { + Object.create({}, props); + + return false; + } catch (ex) { + return ex instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-260.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-260.js new file mode 100644 index 0000000000..0c5c5c0990 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-260.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-260", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-260.js", + + description: "Object.create - 'get' property of one property in 'Properties' is a number primitive (8.10.5 step 7.b)", + + test: function testcase() { + try { + Object.create({}, { + prop: { + get: 123 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-261.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-261.js new file mode 100644 index 0000000000..5e42b3a7b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-261.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-261", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-261.js", + + description: "Object.create - 'get' property of one property in 'Properties' is a primitive string (8.10.5 step 7.b)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + get: "string" + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-262.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-262.js new file mode 100644 index 0000000000..81e1a42ed1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-262.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-262", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-262.js", + + description: "Object.create - 'get' property of one property in 'Properties' is an Array object (8.10.5 step 7.b)", + + test: function testcase() { + try { + Object.create({}, { + prop: { + get: [1, 2, 3] + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-263.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-263.js new file mode 100644 index 0000000000..2784ecc79b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-263.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: "15.2.3.5-4-263", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-263.js", + + description: "Object.create - 'get' property of one property in 'Properties' is a function (8.10.5 step 7.b)", + + test: function testcase() { + var newObj = Object.create({}, { + prop: { + get: function () { } + } + }); + + return newObj.hasOwnProperty("prop") && typeof newObj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-266.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-266.js new file mode 100644 index 0000000000..c9d15acc66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-266.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-266", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-266.js", + + description: "Object.create - 'set' property of one property in 'Properties' is present (8.10.5 step 8)", + + test: function testcase() { + var data = "data"; + + var newObj = Object.create({}, { + prop: { + set: function (value) { + data = value; + } + } + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-267.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-267.js new file mode 100644 index 0000000000..c5ad9b3a94 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-267.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-267", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-267.js", + + description: "Object.create - 'set' property of one property in 'Properties' is not present (8.10.5 step 8)", + + test: function testcase() { + var newObj = Object.create({}, { + prop: { + get: function () { + return "data"; + } + } + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && newObj.prop === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-268.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-268.js new file mode 100644 index 0000000000..d7bee0a647 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-268.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-268", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-268.js", + + description: "Object.create - 'set' property of one property in 'Properties' is own data property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + + var newObj = Object.create({}, { + prop: { + set: function (value) { + data = value; + } + } + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-269.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-269.js new file mode 100644 index 0000000000..49dbb34a36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-269.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: "15.2.3.5-4-269", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-269.js", + + description: "Object.create - 'set' property of one property in 'Properties' is an inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var proto = { + set: function (value) { + data = value; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + + var newObj = Object.create({}, { + prop: child + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-27.js new file mode 100644 index 0000000000..0526c80977 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-27.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.5-4-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-27.js", + + description: "Object.create - own enumerable accessor property in 'Properties' without a get function that overrides an enumerable inherited accessor property in 'Properties' is defined in 'obj' (15.2.3.7 step 5.a)", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function () { + return {}; + }, + enumerable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "prop", { + set: function () { }, + enumerable: true + }); + + try { + Object.create({}, child); + + return false; + } catch (ex) { + return ex instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-270.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-270.js new file mode 100644 index 0000000000..272e96f54a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-270.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.5-4-270", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-270.js", + + description: "Object.create - 'set' property of one property in 'Properties' is own data property that overrides an inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var data1 = "data"; + var data2 = "data"; + var proto = { + set: function (value) { + data2 = value; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + child.set = function (value) { + data1 = value; + }; + + var newObj = Object.create({}, { + prop: child + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data1 === "overrideData" && data2 === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-271.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-271.js new file mode 100644 index 0000000000..1d3fedc6e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-271.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.5-4-271", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-271.js", + + description: "Object.create - 'set' property of one property in 'Properties' is own data property that overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var data1 = "data"; + var data2 = "data"; + + var proto = {}; + Object.defineProperty(proto, "set", { + get: function () { + return function (value) { + data2 = value; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + Object.defineProperty(child, "set", { + value: function (value) { + data1 = value; + } + }); + + var newObj = Object.create({}, { + prop: child + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data1 === "overrideData" && data2 === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-272.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-272.js new file mode 100644 index 0000000000..e904763242 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-272.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: "15.2.3.5-4-272", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-272.js", + + description: "Object.create - 'set' property of one property in 'Properties' is own accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var descObj = {}; + + Object.defineProperty(descObj, "set", { + get: function () { + return function (value) { + data = value; + }; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-273.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-273.js new file mode 100644 index 0000000000..a821de8664 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-273.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.5-4-273", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-273.js", + + description: "Object.create - 'set' property of one property in 'Properties' is an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var proto = {}; + + Object.defineProperty(proto, "set", { + get: function () { + return function (value) { + data = value; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + + var newObj = Object.create({}, { + prop: child + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-274.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-274.js new file mode 100644 index 0000000000..5064d3a0a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-274.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.5-4-274", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-274.js", + + description: "Object.create - 'set' property of one property in 'Properties' is own accessor property that overrides an inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var data1 = "data"; + var data2 = "data"; + + var proto = {}; + proto.set = function (value) { + data2 = value; + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + Object.defineProperty(child, "set", { + get: function () { + return function (value) { + data1 = value; + }; + } + }); + + var newObj = Object.create({}, { + prop: child + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data1 === "overrideData" && data2 === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-275.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-275.js new file mode 100644 index 0000000000..4f1e7b364a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-275.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.5-4-275", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-275.js", + + description: "Object.create - 'set' property of one property in 'Properties' is own accessor property that overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var data1 = "data"; + var data2 = "data"; + var proto = {}; + + Object.defineProperty(proto, "set", { + get: function () { + return function (value) { + data2 = value; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + Object.defineProperty(child, "set", { + get: function () { + return function (value) { + data1 = value; + }; + } + }); + + var newObj = Object.create({}, { + prop: child + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data1 === "overrideData" && data2 === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-276.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-276.js new file mode 100644 index 0000000000..e334d55991 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-276.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-276", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-276.js", + + description: "Object.create - 'set' property of one property in 'Properties' is own accessor property without a get function (8.10.5 step 8.a)", + + test: function testcase() { + var descObj = {}; + Object.defineProperty(descObj, "set", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + var desc = Object.getOwnPropertyDescriptor(newObj, "prop"); + + return hasProperty && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-277.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-277.js new file mode 100644 index 0000000000..86ea79b5a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-277.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.5-4-277", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-277.js", + + description: "Object.create - 'set' property of one property in 'Properties' is own accessor property without a get function, which overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "set", { + get: function () { + return function () { }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + Object.defineProperty(child, "set", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: child + }); + + var desc = Object.getOwnPropertyDescriptor(newObj, "prop"); + + return newObj.hasOwnProperty("prop") && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-278.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-278.js new file mode 100644 index 0000000000..feeec97b22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-278.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-278", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-278.js", + + description: "Object.create - 'set' property of one property in 'Properties' is an inherited accessor property without a get function (8.10.5 step 8.a)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "set", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var child = new ConstructFun(); + + var newObj = Object.create({}, { + prop: child + }); + + var desc = Object.getOwnPropertyDescriptor(newObj, "prop"); + + return newObj.hasOwnProperty("prop") && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-279.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-279.js new file mode 100644 index 0000000000..11abe025c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-279.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-279", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-279.js", + + description: "Object.create - one property in 'Properties' is a Function object which implements its own [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var funObj = function () { }; + var data = "data"; + funObj.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: funObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-28.js new file mode 100644 index 0000000000..6bb74fa5e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-28.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: "15.2.3.5-4-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-28.js", + + description: "Object.create - 'Properties' is a Function object which implements its own [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = function () { }; + props.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, props); + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-280.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-280.js new file mode 100644 index 0000000000..12e6ab82c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-280.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-280", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-280.js", + + description: "Object.create - one property in 'Properties' is an Array object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var arrObj = []; + var data = "data"; + arrObj.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: arrObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-281.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-281.js new file mode 100644 index 0000000000..da1dce8179 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-281.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-281", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-281.js", + + description: "Object.create - one property in 'Properties' is a String object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var strObj = new String(); + var data = "data"; + strObj.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: strObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-282.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-282.js new file mode 100644 index 0000000000..233539a655 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-282.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-282", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-282.js", + + description: "Object.create - one property in 'Properties' is a Boolean object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var boolObj = new Boolean(true); + var data = "data"; + boolObj.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: boolObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-283.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-283.js new file mode 100644 index 0000000000..06403600c7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-283.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-283", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-283.js", + + description: "Object.create - one property in 'Properties' is a Number object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var numObj = new Number(5); + var data = "data"; + numObj.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: numObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-284.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-284.js new file mode 100644 index 0000000000..ab9c902aa8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-284.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.5-4-284", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-284.js", + + description: "Object.create - one property in 'Properties' is the Math object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + + try { + Math.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: Math + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + } finally { + delete Math.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-285.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-285.js new file mode 100644 index 0000000000..f98c0aaced --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-285.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-285", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-285.js", + + description: "Object.create - one property in 'Properties' is a Date object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var dateObj = new Date(); + var data = "data"; + dateObj.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: dateObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-286.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-286.js new file mode 100644 index 0000000000..edfd3d2f5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-286.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-286", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-286.js", + + description: "Object.create - one property in 'Properties' is a RegExp object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var regObj = new RegExp(); + var data = "data"; + regObj.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: regObj + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-287.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-287.js new file mode 100644 index 0000000000..6f171f489e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-287.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.5-4-287", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-287.js", + + description: "Object.create - one property in 'Properties' is the JSON object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + + try { + JSON.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: JSON + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + } finally { + delete JSON.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-288.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-288.js new file mode 100644 index 0000000000..e9637b6e5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-288.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-288", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-288.js", + + description: "Object.create - one property in 'Properties' is an Error object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var errObj = new Error("error"); + var data = "data"; + + errObj.set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: errObj + }); + + newObj.prop = "overrideData"; + + return newObj.hasOwnProperty("prop") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-289.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-289.js new file mode 100644 index 0000000000..408504fcbf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-289.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-289", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-289.js", + + description: "Object.create - one property in 'Properties' is an Arguments object which implements its own [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var argObj = (function () { return arguments; })(); + + var data = "data"; + + argObj.set = function (value) { + data = value; + }; + + var newobj = Object.create({}, { + prop: argObj + }); + + var hasProperty = newobj.hasOwnProperty("prop"); + + newobj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-29.js new file mode 100644 index 0000000000..3517bd4ebb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-29.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: "15.2.3.5-4-29", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-29.js", + + description: "Object.create - 'Properties' is an Array object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = []; + props.prop = { + value: {}, + enumerable: true + }; + var newObj = Object.create({}, props); + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-291.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-291.js new file mode 100644 index 0000000000..04a82e57b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-291.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.5-4-291", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-291.js", + + description: "Object.create - one property in 'Properties' is the global object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + + try { + fnGlobalObject().set = function (value) { + data = value; + }; + + var newObj = Object.create({}, { + prop: fnGlobalObject() + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = "overrideData"; + + return hasProperty && data === "overrideData"; + } finally { + delete fnGlobalObject().set; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-292.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-292.js new file mode 100644 index 0000000000..bb347b7a9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-292.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-292", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-292.js", + + description: "Object.create - 'set' property of one property in 'Properties' is undefined (8.10.5 step 8.b)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + set: undefined + } + }); + + newObj.prop = "overrideData"; + + return newObj.hasOwnProperty("prop") && typeof (newObj.prop) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-293.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-293.js new file mode 100644 index 0000000000..f5ef51643f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-293.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-293", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-293.js", + + description: "Object.create - 'set' property of one property in 'Properties' is a primitive value null (8.10.5 step 8.b)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + set: null + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-294.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-294.js new file mode 100644 index 0000000000..874fbd6a54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-294.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-294", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-294.js", + + description: "Object.create - 'set' property of one property in 'Properties' is a primitive boolean value true (8.10.5 step 8.b)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + set: true + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-295.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-295.js new file mode 100644 index 0000000000..b9afa8100b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-295.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-295", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-295.js", + + description: "Object.create - 'set' property of one property in 'Properties' is a primitive number value (8.10.5 step 8.b)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + set: 123 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-296.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-296.js new file mode 100644 index 0000000000..ae57697452 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-296.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-296", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-296.js", + + description: "Object.create - 'set' property of one property in 'Properties' is a primitive string value (8.10.5 step 8.b)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + set: "abc" + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-297.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-297.js new file mode 100644 index 0000000000..82fd19713f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-297.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-297", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-297.js", + + description: "Object.create - 'set' property of one property in 'Properties' is an Date object (8.10.5 step 8.b)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + set: new Date() + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-298.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-298.js new file mode 100644 index 0000000000..5c270b3fb7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-298.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-298", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-298.js", + + description: "Object.create - 'set' property of one property in 'Properties' is a function (8.10.5 step 8.b)", + + test: function testcase() { + var data = "data"; + + var newObj = Object.create({}, { + prop: { + set: function (value) { + data = value; + } + } + }); + + newObj.prop = "overrideData"; + + return newObj.hasOwnProperty("prop") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-3.js new file mode 100644 index 0000000000..7f4f5b7f00 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-3.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: "15.2.3.5-4-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-3.js", + + description: "Object.create throws TypeError if 'Properties' is null (15.2.3.7 step 2)", + + test: function testcase() { + + try { + Object.create({}, null); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-30.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-30.js new file mode 100644 index 0000000000..17955b167f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-30.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-30", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-30.js", + + description: "Object.create - 'Properties' is a String object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = new String(); + props.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, props); + + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-300.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-300.js new file mode 100644 index 0000000000..a4fbebedc6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-300.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-300", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-300.js", + + description: "Object.create - 'set' property of one property in 'Properties' is a host object that isn't callable (8.10.5 step 8.b)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + set: fnGlobalObject() + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-301.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-301.js new file mode 100644 index 0000000000..bec72bc02e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-301.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-301", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-301.js", + + description: "Object.create - TypeError is thrown if both 'set' property and 'value' property of one property in 'Properties' are present (8.10.5 step 9.a)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + set: function () { }, + value: 100 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-302.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-302.js new file mode 100644 index 0000000000..df14a8f4e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-302.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-302", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-302.js", + + description: "Object.create - TypeError is thrown if both 'set' property and 'writable' property of one property in 'Properties' are present (8.10.5 step 9.a)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + set: function () { }, + writable: true + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-303.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-303.js new file mode 100644 index 0000000000..27b7157497 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-303.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-303", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-303.js", + + description: "Object.create - TypeError is thrown if both 'get' property and 'value' property of one property in 'Properties' are present (8.10.5 step 9.a)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + get: function () { }, + value: 100 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-304.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-304.js new file mode 100644 index 0000000000..857f653693 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-304.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-304", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-304.js", + + description: "Object.create - TypeError is thrown if both 'get' property and 'writable' property of one property in 'Properties' are present (8.10.5 step 9.a)", + + test: function testcase() { + + try { + Object.create({}, { + prop: { + get: function () { }, + writable: true + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-305.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-305.js new file mode 100644 index 0000000000..0fcb46aa9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-305.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-305", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-305.js", + + description: "Object.create defines a data property when one property in 'Properties' is generic descriptor (8.12.9 step 4.a)", + + test: function testcase() { + + try { + var newObj = Object.create({}, { + prop: { + enumerable: true + } + }); + return newObj.hasOwnProperty("prop"); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-306.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-306.js new file mode 100644 index 0000000000..0f8359ab30 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-306.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-306", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-306.js", + + description: "Object.create - [[Value]] is set as undefined if it is absent in data descriptor of one property in 'Properties' (8.12.9 step 4.a.i)", + + test: function testcase() { + + try { + var newObj = Object.create({}, { + prop: { + writable: true, + configurable: true, + enumerable: true + } + }); + return newObj.hasOwnProperty("prop") && newObj.prop === undefined; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-307.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-307.js new file mode 100644 index 0000000000..838a2585a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-307.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-307", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-307.js", + + description: "Object.create - [[Writable]] is set as false if it is absent in data descriptor of one property in 'Properties' (8.12.9 step 4.a.i)", + + test: function testcase() { + var newObj = Object.create({}, { + prop: { + value: 1001, + configurable: true, + enumerable: true + } + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + newObj.prop = 12; + + return hasProperty && newObj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-308.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-308.js new file mode 100644 index 0000000000..e32e41e673 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-308.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-308", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-308.js", + + description: "Object.create - [[Enumerable]] is set as false if it is absent in data descriptor of one property in 'Properties' (8.12.9 step 4.a.i)", + + test: function testcase() { + var isEnumerable = false; + + var newObj = Object.create({}, { + prop: { + value: 1001, + writable: true, + configurable: true + } + }); + + var hasProperty = newObj.hasOwnProperty("prop"); + + for (var p in newObj) { + if (p === "prop") { + isEnumerable = true; + } + } + return hasProperty && !isEnumerable; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-309.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-309.js new file mode 100644 index 0000000000..8cca987960 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-309.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.5-4-309", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-309.js", + + description: "Object.create - [[Configurable]] is set as false if it is absent in data descriptor of one property in 'Properties' (8.12.9 step 4.a.i)", + + test: function testcase() { + var isNotConfigurable = false; + + try { + var newObj = Object.create({}, { + prop: { + value: 1001, + writable: true, + enumerable: true + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + delete newObj.prop; + isNotConfigurable = newObj.hasOwnProperty("prop"); + return hasProperty && isNotConfigurable; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-31.js new file mode 100644 index 0000000000..57ce1be414 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-31.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: "15.2.3.5-4-31", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-31.js", + + description: "Object.create - 'Properties' is a Boolean object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = new Boolean(false); + props.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, props); + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-310.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-310.js new file mode 100644 index 0000000000..a55fc0684b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-310.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: "15.2.3.5-4-310", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-310.js", + + description: "Object.create - [[Get]] is set as undefined if it is absent in accessor descriptor of one property in 'Properties' (8.12.9 step 4.b)", + + test: function testcase() { + var newObj = Object.create({}, { + prop: { + set: function () { }, + enumerable: true, + configurable: true + } + }); + return newObj.hasOwnProperty("prop") && newObj.prop === undefined; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-311.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-311.js new file mode 100644 index 0000000000..31f32dffbc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-311.js @@ -0,0 +1,66 @@ +/// 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: "15.2.3.5-4-311", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-311.js", + + description: "Object.create - [[Set]] is set as undefined if it is absent in accessor descriptor of one property in 'Properties' (8.12.9 step 4.b)", + + test: function testcase() { + var newObj = Object.create({}, { + prop: { + get: function () { + return "verifyCreate"; + }, + enumerable: true, + configurable: true + } + }); + + var desc = Object.getOwnPropertyDescriptor(newObj, "prop"); + var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined"; + + var verifyGet = false; + if (newObj.prop === "verifyCreate") { + verifyGet = true; + } + + var verifyEnumerable = false; + for (var p in newObj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + var verifyConfigurable = false; + var hasProperty = newObj.hasOwnProperty("prop"); + delete newObj.prop; + verifyConfigurable = !newObj.hasOwnProperty("prop") && hasProperty; + + return verifySet && verifyGet && verifyEnumerable && verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-312.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-312.js new file mode 100644 index 0000000000..8860d6187c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-312.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-312", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-312.js", + + description: "Object.create - [[Enumerable]] is set as false if it is absent in accessor descriptor of one property in 'Properties' (8.12.9 step 4.b)", + + test: function testcase() { + var isEnumerable = false; + var newObj = Object.create({}, { + prop: { + set: function () { }, + get: function () { }, + configurable: true + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + for (var p in newObj) { + if (p === "prop") { + isEnumerable = true; + } + } + return hasProperty && !isEnumerable; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-313.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-313.js new file mode 100644 index 0000000000..d4f95e7dfb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-313.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-313", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-313.js", + + description: "Object.create - [[Configurable]] is set as false if it is absent in accessor descriptor of one property in 'Properties' (8.12.9 step 4.b)", + + test: function testcase() { + var newObj = Object.create({}, { + prop: { + set: function () { }, + get: function () { }, + enumerable: true + } + }); + var hasProperty = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var isNotConfigurable = newObj.hasOwnProperty("prop"); + return hasProperty && isNotConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-314.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-314.js new file mode 100644 index 0000000000..c16afb672e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-314.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.5-4-314", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-314.js", + + description: "Object.create - some enumerable own property in 'Properties' is empty object (15.2.3.7 step 7)", + + test: function testcase() { + + var newObj = Object.create({}, { + foo: {} + }); + return newObj.hasOwnProperty("foo"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-315.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-315.js new file mode 100644 index 0000000000..ab1cb1d061 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-315.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.5-4-315", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-315.js", + + description: "Object.create - all properties in 'Properties' are enumerable (data property and accessor property) (15.2.3.7 step 7)", + + test: function testcase() { + + var newObj = {}; + function getFunc() { + return 10; + } + function setFunc(value) { + newObj.setVerifyHelpProp = value; + } + + newObj = Object.create({}, { + foo1: { + value: 200, + enumerable: true, + writable: true, + configurable: true + }, + foo2: { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + } + }); + return dataPropertyAttributesAreCorrect(newObj, "foo1", 200, true, true, true) && + accessorPropertyAttributesAreCorrect(newObj, "foo2", getFunc, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-316.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-316.js new file mode 100644 index 0000000000..2ee0ce85e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-316.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.5-4-316", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-316.js", + + description: "Object.create - enumerable properties of 'Properties' are given numerical names (15.2.3.7 step 7)", + + test: function testcase() { + + function getFunc() { + return 20; + } + function setFunc() { } + + var newObj = Object.create({}, { + 0: { + value: 100, + enumerable: true, + writable: true, + configurable: true + }, + 1: { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }, + 2: { + value: 200, + enumerable: true, + writable: true, + configurable: true + } + }); + return newObj[0] === 100 && newObj[1] === 20 && newObj[2] === 200; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-32.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-32.js new file mode 100644 index 0000000000..b49f481eaa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-32.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: "15.2.3.5-4-32", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-32.js", + + description: "Object.create - 'Properties' is a Number object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = new Number(-9); + props.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, props); + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-33.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-33.js new file mode 100644 index 0000000000..c36e0cfb54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-33.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-33", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-33.js", + + description: "Object.create - 'Properties' is the Math object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + try { + Math.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, Math); + return newObj.hasOwnProperty("prop"); + } finally { + delete Math.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-34.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-34.js new file mode 100644 index 0000000000..00c8b70314 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-34.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: "15.2.3.5-4-34", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-34.js", + + description: "Object.create - 'Properties' is a Date object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = new Date(); + props.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, props); + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-35.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-35.js new file mode 100644 index 0000000000..fcbf743108 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-35.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: "15.2.3.5-4-35", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-35.js", + + description: "Object.create - 'Properties' is a RegExp object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = new RegExp(); + props.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, props); + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-36.js new file mode 100644 index 0000000000..f9b5f9a9b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-36.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-36", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-36.js", + + description: "Object.create - 'Properties' is the JSON object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + try { + JSON.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, JSON); + return newObj.hasOwnProperty("prop"); + } finally { + delete JSON.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-37.js new file mode 100644 index 0000000000..54d2fda6e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-37.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-37", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-37.js", + + description: "Object.create - 'Properties' is an Error object that uses Object's [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = new Error("test"); + + (Object.getOwnPropertyNames(props)).forEach(function(name){ + props[name] = {value:11, configurable:true} + }); + + props.prop = { + value: 12, + enumerable: true + }; + var newObj = Object.create({}, props); + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Array.prototype.forEach) && fnExists(Object.getOwnPropertyNames); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-38.js new file mode 100644 index 0000000000..3f77f50bb7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-38.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.5-4-38", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-38.js", + + description: "Object.create - 'Properties' is an Arguments object which implements its own [[Get]] method to access own enumerable property (15.2.3.7 step 5.a)", + + test: function testcase() { + + var argObj = (function () { return arguments; })(); + + argObj.prop = { + value: 12, + enumerable: true + }; + + var newObj = Object.create({}, argObj); + + return newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-39.js new file mode 100644 index 0000000000..3d8d349673 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-39.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: "15.2.3.5-4-39", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-39.js", + + description: "Object.create - ensure that side-effects of gets occur in the same order as they would for: for (P in props) props[P] (15.2.3.7 step 5.a)", + + test: function testcase() { + + var props = {}; + props.prop1 = { value: 12, enumerable: true }; + props.prop2 = { value: true, enumerable: true }; + + var tempArray = []; + for (var p in props) { + if (props.hasOwnProperty(p)) { + tempArray.push(p); + } + } + + var newObj = Object.create({}, props); + var index = 0; + for (var q in newObj) { + if (tempArray[index++] !== q && newObj.hasOwnProperty(q)) { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-4.js new file mode 100644 index 0000000000..a2125bf459 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-4.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-4.js", + + description: "Object.create - argument 'Properties' is an object (15.2.3.7 step 2).", + + test: function testcase() { + + var props = {}; + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Object; + return {}; + }, + enumerable: true + }); + Object.create({}, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-40.js new file mode 100644 index 0000000000..321d54356a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-40.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.5-4-40", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-40.js", + + description: "Object.create - ensure that if an exception is thrown it occurs in the correct order relative to prior and subsequent side-effects (15.2.3.7 step 5.a)", + + test: function testcase() { + + var newObj = {}; + var props = {}; + var i = 0; + + Object.defineProperty(props, "prop1", { + get: function () { + i++; + return {}; + }, + enumerable: true + }); + + Object.defineProperty(props, "prop2", { + get: function () { + if (1 === i++) { + throw new RangeError(); + } else { + return {}; + } + }, + enumerable: true + }); + + try { + newObj = Object.create({}, props); + return false; + } catch (e) { + return (e instanceof RangeError) && !newObj.hasOwnProperty("prop1") && i === 2; + } + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-41.js new file mode 100644 index 0000000000..d1f448ab42 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-41.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-41", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-41.js", + + description: "Object.create - value of one property in 'Properties' is undefined (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.create({}, { + prop: undefined + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-42.js new file mode 100644 index 0000000000..9c302a6489 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-42.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-42", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-42.js", + + description: "Object.create - value of one property in 'Properties' is null (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.create({}, { + prop: null + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-43.js new file mode 100644 index 0000000000..abc9b1a73c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-43.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.5-4-43", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-43.js", + + description: "Object.create - value of one property in 'Properties' is false (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.create({}, { + prop: false + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-44.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-44.js new file mode 100644 index 0000000000..3c3a577907 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-44.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-44", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-44.js", + + description: "Object.create - value of one property in 'Properties' is a number primitive (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.create({}, { + prop: 12 + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-45.js new file mode 100644 index 0000000000..b2e5d3814c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-45.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.5-4-45", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-45.js", + + description: "Object.create - value of one property in 'Properties' is a string (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.create({}, { + prop: "abc" + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-46.js new file mode 100644 index 0000000000..395603e5b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-46.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-46", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-46.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is true (8.10.5 step 3)", + + test: function testcase() { + + var accessed = false; + var newObj = Object.create({}, { + prop: { + enumerable: true + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-47.js new file mode 100644 index 0000000000..c0e737ff73 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-47.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-47", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-47.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is not present (8.10.5 step 3)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: {} + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-48.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-48.js new file mode 100644 index 0000000000..3ff7894320 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-48.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-48", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-48.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is own data property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: true + } + }); + + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-49.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-49.js new file mode 100644 index 0000000000..40dc4092e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-49.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.5-4-49", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-49.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is an inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + + var proto = { + enumerable: true + }; + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-5.js new file mode 100644 index 0000000000..c4a2b87b5e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-5.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-5.js", + + description: "Object.create - argument 'Properties' is a Function object (15.2.3.7 step 2)", + + test: function testcase() { + + var props = function () { }; + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Function; + return {}; + }, + enumerable: true + }); + Object.create({}, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-50.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-50.js new file mode 100644 index 0000000000..f06205ad6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-50.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.5-4-50", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-50.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is own data property that overrides an inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var proto = { + enumerable: true + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "enumerable", { + value: false + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-51.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-51.js new file mode 100644 index 0000000000..74d2696254 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-51.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.5-4-51", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-51.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is own data property that overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var proto = {}; + var accessed = false; + + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "enumerable", { + value: false + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-52.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-52.js new file mode 100644 index 0000000000..4d869c5d51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-52.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: "15.2.3.5-4-52", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-52.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is own accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + + var descObj = {}; + Object.defineProperty(descObj, "enumerable", { + get: function () { + return true; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-53.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-53.js new file mode 100644 index 0000000000..1e66e12688 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-53.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.5-4-53", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-53.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var proto = {}; + var accessed = false; + + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-54.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-54.js new file mode 100644 index 0000000000..a8ad954ac3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-54.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.5-4-54", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-54.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is own accessor property that overrides an inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var proto = { + enumerable: true + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "enumerable", { + get: function () { + return false; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-55.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-55.js new file mode 100644 index 0000000000..a0d7ce943c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-55.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.5-4-55", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-55.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is own accessor property that overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var proto = {}; + var accessed = false; + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "enumerable", { + get: function () { + return false; + } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-56.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-56.js new file mode 100644 index 0000000000..3ceba72f2b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-56.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-56", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-56.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is own accessor property without a get function (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var descObj = {}; + Object.defineProperty(descObj, "enumerable", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-57.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-57.js new file mode 100644 index 0000000000..54a9ec7acf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-57.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.5-4-57", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-57.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is own accessor property without a get function, which overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var proto = {}; + var accessed = false; + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + Object.defineProperty(descObj, "enumerable", { + set: function () { } + }); + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-58.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-58.js new file mode 100644 index 0000000000..d628526f9f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-58.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.5-4-58", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-58.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is an inherited accessor property without a get function (8.10.5 step 3.a)", + + test: function testcase() { + + + var proto = {}; + var accessed = false; + + Object.defineProperty(proto, "enumerable", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var descObj = new ConstructFun(); + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-59.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-59.js new file mode 100644 index 0000000000..368d339e1e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-59.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-59", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-59.js", + + description: "Object.create - one property in 'Properties' is a Function object which implements its own [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var descObj = function () { }; + + descObj.enumerable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-6.js new file mode 100644 index 0000000000..095e6c9354 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-6.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-6.js", + + description: "Object.create - argument 'Properties' is an Array object (15.2.3.7 step 2).", + + test: function testcase() { + + var props = []; + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Array; + return {}; + }, + enumerable: true + }); + Object.create({}, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-60.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-60.js new file mode 100644 index 0000000000..1ca25dea92 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-60.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-60", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-60.js", + + description: "Object.create - one property in 'Properties' is an Array object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + + var accessed = false; + var descObj = []; + + descObj.enumerable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-61.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-61.js new file mode 100644 index 0000000000..0796a6de88 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-61.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-61", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-61.js", + + description: "Object.create - one property in 'Properties' is a String object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var descObj = new String(); + + descObj.enumerable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-62.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-62.js new file mode 100644 index 0000000000..bb0fcf2a22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-62.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-62", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-62.js", + + description: "Object.create - one property in 'Properties' is a Boolean object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var descObj = new Boolean(false); + + descObj.enumerable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-63.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-63.js new file mode 100644 index 0000000000..001c6426b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-63.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-63", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-63.js", + + description: "Object.create - one property in 'Properties' is a Number object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var descObj = new Number(-9); + + descObj.enumerable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-64.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-64.js new file mode 100644 index 0000000000..6a0c939a3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-64.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-64", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-64.js", + + description: "Object.create - one property in 'Properties' is the Math object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + + try { + Math.enumerable = true; + + var newObj = Object.create({}, { + prop: Math + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + } finally { + delete Math.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-65.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-65.js new file mode 100644 index 0000000000..b4ef9fefa1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-65.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-65", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-65.js", + + description: "Object.create - one property in 'Properties' is a Date object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var descObj = new Date(); + + descObj.enumerable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-66.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-66.js new file mode 100644 index 0000000000..b64fa76621 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-66.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-66", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-66.js", + + description: "Object.create - one property in 'Properties' is a RegExp object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var descObj = new RegExp(); + + descObj.enumerable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-67.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-67.js new file mode 100644 index 0000000000..a7693f3d4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-67.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-67", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-67.js", + + description: "Object.create - one property in 'Properties' is the JSON object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + + try { + JSON.enumerable = true; + + var newObj = Object.create({}, { + prop: JSON + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + } finally { + delete JSON.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-68.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-68.js new file mode 100644 index 0000000000..f007a5690c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-68.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-68", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-68.js", + + description: "Object.create - one property in 'Properties' is an Error object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var descObj = new Error(); + + descObj.enumerable = true; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-69.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-69.js new file mode 100644 index 0000000000..17c7c07da5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-69.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-69", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-69.js", + + description: "Object.create - one property in 'Properties' is an Arguments object which implements its own [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + var argObj = (function () { return arguments; })(); + + argObj.enumerable = true; + + var newObj = Object.create({}, { + prop: argObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-7.js new file mode 100644 index 0000000000..366c36723f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-7.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-7.js", + + description: "Object.create - argument 'Properties' is a String object (15.2.3.7 step 2)", + + test: function testcase() { + + var props = new String(); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof String; + return {}; + }, + enumerable: true + }); + Object.create({}, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-71.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-71.js new file mode 100644 index 0000000000..0f79f4454a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-71.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.5-4-71", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-71.js", + + description: "Object.create - one property in 'Properties' is the global object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var accessed = false; + + try { + fnGlobalObject().enumerable = true; + + var newObj = Object.create({}, { + prop: fnGlobalObject() + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + } finally { + delete fnGlobalObject().enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-72.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-72.js new file mode 100644 index 0000000000..08e2374b91 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-72.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-72", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-72.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is undefined (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: undefined + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-73.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-73.js new file mode 100644 index 0000000000..412aca318f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-73.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-73", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-73.js", + + description: "Object.create - value of 'enumerable' property of one property in 'Properties' is null (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: null + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-74.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-74.js new file mode 100644 index 0000000000..e352ca613b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-74.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-74", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-74.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is true (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: true + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-75.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-75.js new file mode 100644 index 0000000000..10a06c8dd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-75.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.5-4-75", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-75.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is false (8.10.5 step 3.b)", + + test: function testcase() { + + + var accessed = false; + var descObj = { + enumerable: false + }; + + var newObj = Object.create({}, { + prop: descObj + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-76.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-76.js new file mode 100644 index 0000000000..a0efadb4ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-76.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-76", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-76.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is 0 (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: 0 + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-77.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-77.js new file mode 100644 index 0000000000..4035cf7629 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-77.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-77", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-77.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is +0 (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: +0 + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-78.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-78.js new file mode 100644 index 0000000000..eb0a96fb23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-78.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-78", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-78.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is -0 (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: -0 + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-79.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-79.js new file mode 100644 index 0000000000..32dcc63438 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-79.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-79", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-79.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is NaN (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: NaN + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-8.js new file mode 100644 index 0000000000..2a00a5e4a7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-8.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-8.js", + + description: "Object.create - argument 'Properties' is a Boolean object whose primitive value is true (15.2.3.7 step 2).", + + test: function testcase() { + + var props = new Boolean(true); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Boolean; + return {}; + }, + enumerable: true + }); + Object.create({}, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-80.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-80.js new file mode 100644 index 0000000000..f4b5d28d1a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-80.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-80", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-80.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a positive number primitive (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: 12 + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-81.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-81.js new file mode 100644 index 0000000000..4e81d4b091 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-81.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-81", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-81.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a negative number primitive (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: -9 + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-82.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-82.js new file mode 100644 index 0000000000..7e1ed25547 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-82.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-82", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-82.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is an empty string (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: "" + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed && newObj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-83.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-83.js new file mode 100644 index 0000000000..e2a07cbf09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-83.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-83", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-83.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a non-empty string (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: "AB\n\\cd" + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-84.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-84.js new file mode 100644 index 0000000000..efb60bf6f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-84.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-84", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-84.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a Function object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: function () { } + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-85.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-85.js new file mode 100644 index 0000000000..0f5b32be74 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-85.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-85", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-85.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is an Array object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: [] + } + }); + + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-86.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-86.js new file mode 100644 index 0000000000..ab2df38935 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-86.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-86", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-86.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a String object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: new String() + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-87.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-87.js new file mode 100644 index 0000000000..5cd791f7ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-87.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-87", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-87.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a Boolean object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: new Boolean(true) + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-88.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-88.js new file mode 100644 index 0000000000..efa1af1c8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-88.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-88", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-88.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a Number object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: new Number(-9) + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-89.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-89.js new file mode 100644 index 0000000000..7a7809345e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-89.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-89", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-89.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is the Math object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: Math + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-9.js new file mode 100644 index 0000000000..3d33ee9ca8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-9.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.5-4-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-9.js", + + description: "Object.create - argument 'Properties' is a Number object whose primitive value is any interesting number (15.2.3.7 step 2).", + + test: function testcase() { + + var props = new Number(12); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Number; + return {}; + }, + enumerable: true + }); + Object.create({}, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.create) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-90.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-90.js new file mode 100644 index 0000000000..bd43a34d21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-90.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-90", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-90.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a Date object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: new Date() + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-91.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-91.js new file mode 100644 index 0000000000..df148257e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-91.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-91", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-91.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a RegExp object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: new RegExp() + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-92.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-92.js new file mode 100644 index 0000000000..ef802b3ca3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-92.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-92", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-92.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is the JSON object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: JSON + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-93.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-93.js new file mode 100644 index 0000000000..d8376294db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-93.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-93", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-93.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is an Error object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: new Error() + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-94.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-94.js new file mode 100644 index 0000000000..522bb1e4ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-94.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.5-4-94", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-94.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is an Arguments object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + var argObj = (function () { return arguments; })(); + + var newObj = Object.create({}, { + prop: { + enumerable: argObj + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-96.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-96.js new file mode 100644 index 0000000000..fb5c453c20 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-96.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-96", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-96.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is the global object (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: fnGlobalObject() + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-97.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-97.js new file mode 100644 index 0000000000..59125fbe7d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-97.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-97", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-97.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is a string (value is 'false'), which is treated as the value true (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: "false" + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-98.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-98.js new file mode 100644 index 0000000000..a879a417b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-98.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.5-4-98", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-98.js", + + description: "Object.create - 'enumerable' property of one property in 'Properties' is new Boolean(false), which is treated as the value true (8.10.5 step 3.b)", + + test: function testcase() { + + var accessed = false; + + var newObj = Object.create({}, { + prop: { + enumerable: new Boolean(false) + } + }); + for (var property in newObj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-99.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-99.js new file mode 100644 index 0000000000..5f7306b4ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-99.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.5-4-99", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.5/15.2.3.5-4-99.js", + + description: "Object.create - 'configurable' property of one property in 'Properties' is true (8.10.5 step 4)", + + test: function testcase() { + + var newObj = Object.create({}, { + prop: { + configurable: true + } + }); + + var result1 = newObj.hasOwnProperty("prop"); + delete newObj.prop; + var result2 = newObj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.create); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-0-1.js new file mode 100644 index 0000000000..8bd26d1642 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.6-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-0-1.js", + +description: "Object.defineProperty must exist as a function", + +test: function testcase() { + var f = Object.defineProperty; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-0-2.js new file mode 100644 index 0000000000..10001bb260 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.6-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-0-2.js", + +description: "Object.defineProperty must exist as a function taking 3 parameters", + +test: function testcase() { + if (Object.defineProperty.length === 3) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-1.js new file mode 100644 index 0000000000..f651ea6105 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-1.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: "15.2.3.6-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-1.js", + + description: "Object.defineProperty applied to undefined throws a TypeError", + + test: function testcase() { + try { + Object.defineProperty(undefined, "foo", {}); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-2.js new file mode 100644 index 0000000000..eb5362cde8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-2.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: "15.2.3.6-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-2.js", + + description: "Object.defineProperty applied to null throws a TypeError", + + test: function testcase() { + try { + Object.defineProperty(null, "foo", {}); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-3.js new file mode 100644 index 0000000000..96cd301a44 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-3.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: "15.2.3.6-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-3.js", + + description: "Object.defineProperty applied to number primitive throws a TypeError", + + test: function testcase() { + try { + Object.defineProperty(5, "foo", {}); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-4.js new file mode 100644 index 0000000000..2a330c5c1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-4.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: "15.2.3.6-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1-4.js", + + description: "Object.defineProperty applied to string primitive throws a TypeError", + + test: function testcase() { + try { + Object.defineProperty("hello\nworld\\!", "foo", {}); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1.js new file mode 100644 index 0000000000..f1126b514a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1.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: "15.2.3.6-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-1.js", + +description: "Object.defineProperty throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.defineProperty(true, "foo", {}); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-1.js new file mode 100644 index 0000000000..e52a384604 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-1.js", + + description: "Object.defineProperty - argument 'P' is undefined that converts to string 'undefined'", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, undefined, {}); + + return obj.hasOwnProperty("undefined"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-10.js new file mode 100644 index 0000000000..68b560f0dc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-10.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-10.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is a negative number)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, -20, {}); + + return obj.hasOwnProperty("-20"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-11.js new file mode 100644 index 0000000000..0fc48a0977 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-11.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-11.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is Infinity)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, Infinity, {}); + + return obj.hasOwnProperty("Infinity"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-12.js new file mode 100644 index 0000000000..8856b9ba42 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-12.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-12.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is +Infinity)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, +Infinity, {}); + + return obj.hasOwnProperty("Infinity"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-13.js new file mode 100644 index 0000000000..795f3e54bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-13.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-13.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is -Infinity)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, -Infinity, {}); + + return obj.hasOwnProperty("-Infinity"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-14.js new file mode 100644 index 0000000000..3042486f70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-14.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-14.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1(following 20 zeros))", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 100000000000000000000, {}); + + return obj.hasOwnProperty("100000000000000000000"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-15.js new file mode 100644 index 0000000000..ba6df04702 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-15.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-15.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1(following 21 zeros))", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 1000000000000000000000, {}); + + return obj.hasOwnProperty("1e+21"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-16.js new file mode 100644 index 0000000000..90aca64898 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-16.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-16.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1(following 22 zeros))", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 10000000000000000000000, {}); + + return obj.hasOwnProperty("1e+22"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-17-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-17-1.js new file mode 100644 index 0000000000..ee7fd3c41c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-17-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-17-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-17-1.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1(trailing 5 zeros))", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 000001, {}); + + return obj.hasOwnProperty("1"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-17.js new file mode 100644 index 0000000000..b40480b967 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-17.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-17.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1e+20)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 1e+20, {}); + + return obj.hasOwnProperty("100000000000000000000"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-18.js new file mode 100644 index 0000000000..42f97e61bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-18.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-18.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to string (value is 1e+21)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 1e+21, {}); + + return obj.hasOwnProperty("1e+21"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-19.js new file mode 100644 index 0000000000..02b8937e77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-19.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-19.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to string (value is 1e+22)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 1e+22, {}); + + return obj.hasOwnProperty("1e+22"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-2.js new file mode 100644 index 0000000000..7ba9c5e0d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-2.js", + + description: "Object.defineProperty - argument 'P' is null that converts to string 'null'", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, null, {}); + + return obj.hasOwnProperty("null"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-20.js new file mode 100644 index 0000000000..63dcddc477 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-20.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-20.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 0.000001)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 0.000001, {}); + + return obj.hasOwnProperty("0.000001"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-21.js new file mode 100644 index 0000000000..606fab1208 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-21.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-21.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 0.0000001)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 0.0000001, {}); + + return obj.hasOwnProperty("1e-7"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-22.js new file mode 100644 index 0000000000..95ba942ba5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-22.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-22.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 0.00000001)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 0.00000001, {}); + + return obj.hasOwnProperty("1e-8"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-23.js new file mode 100644 index 0000000000..a0c38f0060 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-23.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-23.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1e-7)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 1e-7, {}); + + return obj.hasOwnProperty("1e-7"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-24.js new file mode 100644 index 0000000000..e6ed1629df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-24.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-24.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1e-6)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 1e-6, {}); + + return obj.hasOwnProperty("0.000001"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-25.js new file mode 100644 index 0000000000..11da3205b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-25.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-25.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1e-5)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 1e-5, {}); + + return obj.hasOwnProperty("0.00001"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-26.js new file mode 100644 index 0000000000..c6796fce4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-26.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-26.js", + + description: "Object.defineProperty - argument 'P' is an integer that converts to a string (value is 123)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 123, {}); + + return obj.hasOwnProperty("123"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-27.js new file mode 100644 index 0000000000..718abd30af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-27.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-27.js", + + description: "Object.defineProperty - argument 'P' is a decimal that converts to a string (value is 123.456)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 123.456, {}); + + return obj.hasOwnProperty("123.456"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-28.js new file mode 100644 index 0000000000..f31e34ee47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-28.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-28.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1(following 19 zeros).1)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 10000000000000000000.1, {}); + + return obj.hasOwnProperty("10000000000000000000"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-29.js new file mode 100644 index 0000000000..5aaae527f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-29.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-29", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-29.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1(following 20 zeros).1)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 100000000000000000000.1, {}); + + return obj.hasOwnProperty("100000000000000000000"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-3.js new file mode 100644 index 0000000000..683a482433 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-3.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-3.js", + + description: "Object.defineProperty - argument 'P' is a boolean whose value is false", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, false, {}); + + return obj.hasOwnProperty("false"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-30.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-30.js new file mode 100644 index 0000000000..c05c202e14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-30.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-30", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-30.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1(following 21 zeros).1)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 1000000000000000000000.1, {}); + + return obj.hasOwnProperty("1e+21"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-31.js new file mode 100644 index 0000000000..2258a48f0f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-31.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-31", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-31.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 1(following 22 zeros).1)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 10000000000000000000000.1, {}); + + return obj.hasOwnProperty("1e+22"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-32.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-32.js new file mode 100644 index 0000000000..dee573cf25 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-32.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-32", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-32.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 123.1234567)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 123.1234567, {}); + + return obj.hasOwnProperty("123.1234567"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-33.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-33.js new file mode 100644 index 0000000000..50b850026b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-33.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-33", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-33.js", + + description: "Object.defineProperty - argument 'P' is applied to an empty string ", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "", {}); + + return obj.hasOwnProperty(""); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-34.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-34.js new file mode 100644 index 0000000000..e2e7d369ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-34.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-34", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-34.js", + + description: "Object.defineProperty - argument 'P' is applied to string 'AB\n\\cd' ", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "AB\n\\cd", {}); + + return obj.hasOwnProperty("AB\n\\cd"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-35.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-35.js new file mode 100644 index 0000000000..5d6cfddc99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-35.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-35", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-35.js", + + description: "Object.defineProperty - argument 'P' is applied to string 'undefined' ", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "undefined", {}); + + return obj.hasOwnProperty("undefined"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-36.js new file mode 100644 index 0000000000..a946abca82 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-36.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-36", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-36.js", + + description: "Object.defineProperty - argument 'P' is applied to string 'null' ", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "null", {}); + + return obj.hasOwnProperty("null"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-37.js new file mode 100644 index 0000000000..f3aee8606b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-37.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-37", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-37.js", + + description: "Object.defineProperty - argument 'P' is applied to string '123αβπcd' ", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "123αβπcd", {}); + + return obj.hasOwnProperty("123αβπcd"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-38.js new file mode 100644 index 0000000000..03c374d3c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-38.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-38", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-38.js", + + description: "Object.defineProperty - argument 'P' is applied to string '1' ", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "1", {}); + + return obj.hasOwnProperty("1"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-39.js new file mode 100644 index 0000000000..bbb06dcaf5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-39.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-39", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-39.js", + + description: "Object.defineProperty - argument 'P' is an array that converts to a string", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, [1, 2], {}); + + return obj.hasOwnProperty("1,2"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-4.js new file mode 100644 index 0000000000..b61c2b1db0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-4.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-4.js", + + description: "Object.defineProperty - argument 'P' is a boolean whose value is true", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, true, {}); + + return obj.hasOwnProperty("true"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-40.js new file mode 100644 index 0000000000..33ecd58fe9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-40.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-40", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-40.js", + + description: "Object.defineProperty - argument 'P' is a String Object that converts to a string", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, new String("Hello"), {}); + + return obj.hasOwnProperty("Hello"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-41.js new file mode 100644 index 0000000000..8cd555b388 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-41.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-41", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-41.js", + + description: "Object.defineProperty - argument 'P' is a Boolean Object that converts to a string", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, new Boolean(false), {}); + + return obj.hasOwnProperty("false"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-42.js new file mode 100644 index 0000000000..ee2380a6e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-42.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-42", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-42.js", + + description: "Object.defineProperty - argument 'P' is a Number Object that converts to a string", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, new Number(123), {}); + + return obj.hasOwnProperty("123"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-43.js new file mode 100644 index 0000000000..2b3782c5d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-43.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-2-43", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-43.js", + + description: "Object.defineProperty - argument 'P' is an object that has an own toString method", + + test: function testcase() { + var obj = {}; + + var ownProp = { + toString: function () { + return "abc"; + } + }; + + Object.defineProperty(obj, ownProp, {}); + + return obj.hasOwnProperty("abc"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-44.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-44.js new file mode 100644 index 0000000000..13b983471e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-44.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-2-44", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-44.js", + + description: "Object.defineProperty - argument 'P' is an object that has an own valueOf method", + + test: function testcase() { + var obj = {}; + + var ownProp = { + valueOf: function () { + return "abc"; + }, + toString: undefined + }; + + Object.defineProperty(obj, ownProp, {}); + + return obj.hasOwnProperty("abc"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-45.js new file mode 100644 index 0000000000..7035dc1034 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-45.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-2-45", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-45.js", + + description: "Object.defineProperty - argument 'P' is an object whose toString method returns an object and whose valueOf method returns a primitive value", + + test: function testcase() { + var obj = {}; + var toStringAccessed = false; + var valueOfAccessed = false; + + var ownProp = { + toString: function () { + toStringAccessed = true; + return {}; + }, + valueOf: function () { + valueOfAccessed = true; + return "abc"; + } + }; + + Object.defineProperty(obj, ownProp, {}); + + return obj.hasOwnProperty("abc") && valueOfAccessed && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-46.js new file mode 100644 index 0000000000..c90f27c4f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-46.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-2-46", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-46.js", + + description: "Object.defineProperty - argument 'P' is an object that has an own toString and valueOf method", + + test: function testcase() { + var obj = {}; + var toStringAccessed = false; + var valueOfAccessed = false; + + var ownProp = { + toString: function () { + toStringAccessed = true; + return "abc"; + }, + valueOf: function () { + valueOfAccessed = true; + return "prop"; + } + }; + Object.defineProperty(obj, ownProp, {}); + + return obj.hasOwnProperty("abc") && !valueOfAccessed && toStringAccessed; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-47.js new file mode 100644 index 0000000000..8ede9fe46e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-47.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-2-47", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-47.js", + + description: "Object.defineProperty - TypeError exception is thrown when 'P' is an object that neither toString nor valueOf returns a primitive value", + + test: function testcase() { + var obj = {}; + var toStringAccessed = false; + var valueOfAccessed = false; + + var ownProp = { + toString: function () { + toStringAccessed = true; + return {}; + }, + valueOf: function () { + valueOfAccessed = true; + return {}; + } + }; + + try { + Object.defineProperty(obj, ownProp, {}); + return false; + } catch (e) { + return valueOfAccessed && toStringAccessed && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-48.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-48.js new file mode 100644 index 0000000000..8f936a66da --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-48.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-2-48", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-48.js", + + description: "Object.defineProperty - an inherited toString method is invoked when 'P' is an object with an own valueOf and an inherited toString methods", + + test: function testcase() { + var obj = {}; + var toStringAccessed = false; + var valueOfAccessed = false; + + var proto = { + toString: function () { + toStringAccessed = true; + return "test"; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + child.valueOf = function () { + valueOfAccessed = true; + return "10"; + }; + + Object.defineProperty(obj, child, {}); + + return obj.hasOwnProperty("test") && !valueOfAccessed && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-5.js new file mode 100644 index 0000000000..fb136063a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-5.js @@ -0,0 +1,40 @@ + /// 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: "15.2.3.6-2-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-5.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is NaN)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, NaN, {}); + + return obj.hasOwnProperty("NaN"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-6.js new file mode 100644 index 0000000000..88c4075362 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-6.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-6.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is 0)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 0, {}); + + return obj.hasOwnProperty("0"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-7.js new file mode 100644 index 0000000000..d7087927f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-7.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-7.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is +0)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, +0, {}); + + return obj.hasOwnProperty("0"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-8.js new file mode 100644 index 0000000000..2faa6ed439 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-8.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-8.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is -0)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, -0, {}); + + return obj.hasOwnProperty("0"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-9.js new file mode 100644 index 0000000000..af68c30f73 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-9.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-2-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-2-9.js", + + description: "Object.defineProperty - argument 'P' is a number that converts to a string (value is a positive number)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, 30, {}); + + return obj.hasOwnProperty("30"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-1.js new file mode 100644 index 0000000000..bcc7c4890a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-1.js", + +description: "Object.defineProperty throws TypeError if desc has 'get' and 'value' present(8.10.5 step 9.a)", + +test: function testcase() { + var o = {}; + + // dummy getter + var getter = function () { return 1; } + var desc = { get: getter, value: 101}; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-10.js new file mode 100644 index 0000000000..70547e5372 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-10.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-10", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-10.js", + +description: "Object.defineProperty throws TypeError if setter is not callable but not undefined (Number)(8.10.5 step 8.b)", + +test: function testcase() { + var o = {}; + + // dummy setter + var setter = 42; + var desc = { set: setter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-100.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-100.js new file mode 100644 index 0000000000..411aa437df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-100.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-100", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-100.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is null (8.10.5 step 4.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { configurable: null }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-101.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-101.js new file mode 100644 index 0000000000..28f06d6d22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-101.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-101", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-101.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is true (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: true }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-102.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-102.js new file mode 100644 index 0000000000..bc4019eeea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-102.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-102", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-102.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is false (8.10.5 step 4.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { configurable: false }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-103.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-103.js new file mode 100644 index 0000000000..6cf5f8452c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-103.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-103", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-103.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is 0 (8.10.5 step 4.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { configurable: 0 }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-104.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-104.js new file mode 100644 index 0000000000..f60c1fe4b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-104.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-104", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-104.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is +0 (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: +0 }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-105.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-105.js new file mode 100644 index 0000000000..cf87ece440 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-105.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-105", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-105.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is -0 (8.10.5 step 4.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { configurable: -0 }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-106.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-106.js new file mode 100644 index 0000000000..9fea1decf6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-106.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-106", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-106.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is NaN (8.10.5 step 4.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { configurable: NaN }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-107.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-107.js new file mode 100644 index 0000000000..bb5b3b6d99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-107.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-107", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-107.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a positive number (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: 12345 }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-108.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-108.js new file mode 100644 index 0000000000..d6dd3b1059 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-108.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-108", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-108.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a negative number (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: -12345 }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-109.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-109.js new file mode 100644 index 0000000000..ccb08a1f9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-109.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-109", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-109.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is an empty string (8.10.5 step 4.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { configurable: "" }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-11.js new file mode 100644 index 0000000000..d7fadd1651 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-11.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-11", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-11.js", + +description: "Object.defineProperty throws TypeError if setter is not callable but not undefined (Boolean)(8.10.5 step 8.b)", + +test: function testcase() { + var o = {}; + + // dummy setter + var setter = true; + var desc = { set: setter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-110.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-110.js new file mode 100644 index 0000000000..e7127de4bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-110.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-110", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-110.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a non-empty string (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: " " }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-111.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-111.js new file mode 100644 index 0000000000..e7176c1285 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-111.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-111", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-111.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a Function object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + configurable: function () { } + }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-112.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-112.js new file mode 100644 index 0000000000..2a187ce625 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-112.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-112", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-112.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is an Array object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: [1, 2, 3] }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-113.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-113.js new file mode 100644 index 0000000000..61d0055656 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-113.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-113", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-113.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a String object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: new String("bbq") }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-114.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-114.js new file mode 100644 index 0000000000..776b12808e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-114.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-114", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-114.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a Boolean object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: new Boolean(true) }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-115.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-115.js new file mode 100644 index 0000000000..e9bd2d1c9d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-115.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-115", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-115.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a Number object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: new Number(0) }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-116.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-116.js new file mode 100644 index 0000000000..a049abdfdd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-116.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-116", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-116.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is the Math object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: Math }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-117.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-117.js new file mode 100644 index 0000000000..eb681d2b51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-117.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-117", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-117.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a Date object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { configurable: new Date() }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-118.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-118.js new file mode 100644 index 0000000000..8a869d0d8a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-118.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-118", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-118.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a RegExp object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + var attr = { + configurable: new RegExp() + }; + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-119.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-119.js new file mode 100644 index 0000000000..114e7b42d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-119.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-119", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-119.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is the JSON object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + var attr = { + configurable: JSON + }; + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-12.js new file mode 100644 index 0000000000..2c7dd879ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-12.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-12", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-12.js", + +description: "Object.defineProperty throws TypeError if setter is not callable but not undefined (String)(8.10.5 step 8.b)", + +test: function testcase() { + var o = {}; + + // dummy setter + var setter = "abc"; + var desc = { set: setter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-120.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-120.js new file mode 100644 index 0000000000..51400c933f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-120.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-120", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-120.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is a Error object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + var attr = { + configurable: new SyntaxError() + }; + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-121.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-121.js new file mode 100644 index 0000000000..3dacf52a9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-121.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-121", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-121.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is the Argument object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + var argObj = (function () { return arguments; })(1, true, "a"); + + var attr = { + configurable: argObj + }; + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-123.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-123.js new file mode 100644 index 0000000000..507f0d9c33 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-123.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-123", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-123.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is the global object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + var attr = { + configurable: fnGlobalObject() + }; + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-124.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-124.js new file mode 100644 index 0000000000..5fc3618f4b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-124.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-124", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-124.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is treated as true when it is a string (value is 'false') (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + var attr = { + configurable: "false" + }; + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-125.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-125.js new file mode 100644 index 0000000000..2a54d7695c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-125.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-125", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-125.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is treated as true when it is new Boolean(false) (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + var attr = { + configurable: new Boolean(false) + }; + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-126.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-126.js new file mode 100644 index 0000000000..495ce489ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-126.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: "15.2.3.6-3-126", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-126.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is present (8.10.5 step 5)", + + test: function testcase() { + var obj = {}; + + var attr = { value: 100 }; + + Object.defineProperty(obj, "property", attr); + + return obj.property === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-127.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-127.js new file mode 100644 index 0000000000..9d6af97e98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-127.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-127", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-127.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is not present (8.10.5 step 5)", + + test: function testcase() { + var obj = { }; + + var attr = { + writable: true + }; + + Object.defineProperty(obj, "property", attr); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-129.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-129.js new file mode 100644 index 0000000000..44f3e302eb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-129.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-129", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-129.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is an inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var proto = { + value: "inheritedDataProperty" + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + return obj.property === "inheritedDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-13.js new file mode 100644 index 0000000000..2c05a1772e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-13.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-13", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-13.js", + +description: "Object.defineProperty throws TypeError if the setter in desc is not callable (Null)(8.10.5 step 8.b)", + +test: function testcase() { + var o = {}; + + // dummy setter + var setter = null; + var desc = { set: setter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-130.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-130.js new file mode 100644 index 0000000000..3243c009e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-130.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-130", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-130.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is own data property that overrides an inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = { value: "inheritedDataProperty" }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + child.value = "ownDataProperty"; + + Object.defineProperty(obj, "property", child); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-131.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-131.js new file mode 100644 index 0000000000..532425db19 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-131.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-131", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-131.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is own data property that overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "value", { + value: "ownDataProperty" + }); + + Object.defineProperty(obj, "property", child); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-132.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-132.js new file mode 100644 index 0000000000..06dedc8829 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-132.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-132", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-132.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is own accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var attr = {}; + Object.defineProperty(attr, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + Object.defineProperty(obj, "property", attr); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-133.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-133.js new file mode 100644 index 0000000000..c94aab5f27 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-133.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-133", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-133.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var proto = {}; + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + return obj.property === "inheritedAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-134.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-134.js new file mode 100644 index 0000000000..647762b27a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-134.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-3-134", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-134.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is own accessor property that overrides an inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + value: "inheritedDataProperty" + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + Object.defineProperty(obj, "property", child); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-135.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-135.js new file mode 100644 index 0000000000..38cf88fcae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-135.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-3-135", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-135.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is own accessor property that overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + Object.defineProperty(obj, "property", child); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-136.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-136.js new file mode 100644 index 0000000000..5340aba8e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-136.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-136", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-136.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is own accessor property without a get function (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var attr = {}; + Object.defineProperty(attr, "value", { + set: function () { } + }); + + Object.defineProperty(obj, "property", attr); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-137.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-137.js new file mode 100644 index 0000000000..571ff503c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-137.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: "15.2.3.6-3-137", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-137.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is own accessor property(without a get function) that overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var proto = {}; + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "value", { + set : function () { } + }); + + Object.defineProperty(obj, "property", child); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-138.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-138.js new file mode 100644 index 0000000000..7ea7c941c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-138.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-138", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-138.js", + + description: "Object.defineProperty - 'value' property in 'Attributes' is an inherited accessor property without a get function (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { property : 120 }; + + var proto = {}; + Object.defineProperty(proto, "value", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-139-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-139-1.js new file mode 100644 index 0000000000..4b0d1d273f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-139-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-139-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-139-1.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + Function.prototype.value = "Function"; + var funObj = function (a, b) { + return a + b; + }; + + Object.defineProperty(obj, "property", funObj); + + return obj.property === "Function"; + } finally { + delete Function.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-139.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-139.js new file mode 100644 index 0000000000..cd52a6a2e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-139.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-139", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-139.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var funObj = function (a, b) { + return a + b; + }; + + funObj.value = "Function"; + + Object.defineProperty(obj, "property", funObj); + + return obj.property === "Function"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-14.js new file mode 100644 index 0000000000..80db7eabba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-14.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-14", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-14.js", + +description: "Object.defineProperty throws TypeError if setter is not callable but not undefined (Object)(8.10.5 step 8.b)", + +test: function testcase() { + var o = {}; + + // dummy getter + var setter = { a: 1 }; + var desc = { set: setter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-140-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-140-1.js new file mode 100644 index 0000000000..55e91aee78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-140-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-140-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-140-1.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + Array.prototype.value = "Array"; + var arrObj = [1, 2, 3]; + + Object.defineProperty(obj, "property", arrObj); + + return obj.property === "Array"; + } finally { + delete Array.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-140.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-140.js new file mode 100644 index 0000000000..450a1740a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-140.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-140", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-140.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var arrObj = [1, 2, 3]; + + arrObj.value = "Array"; + + Object.defineProperty(obj, "property", arrObj); + + return obj.property === "Array"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-141-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-141-1.js new file mode 100644 index 0000000000..1a0d6dbbec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-141-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-141-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-141-1.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + String.prototype.value = "String"; + var strObj = new String("abc"); + + Object.defineProperty(obj, "property", strObj); + + return obj.property === "String"; + } finally { + delete String.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-141.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-141.js new file mode 100644 index 0000000000..f5e5eff9de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-141.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-141", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-141.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var strObj = new String("abc"); + + strObj.value = "String"; + + Object.defineProperty(obj, "property", strObj); + + return obj.property === "String"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-142-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-142-1.js new file mode 100644 index 0000000000..913e1a2964 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-142-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-142-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-142-1.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + Boolean.prototype.value = "Boolean"; + var boolObj = new Boolean(true); + + Object.defineProperty(obj, "property", boolObj); + + return obj.property === "Boolean"; + } finally { + delete Boolean.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-142.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-142.js new file mode 100644 index 0000000000..afdf17821a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-142.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-142", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-142.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var boolObj = new Boolean(true); + + boolObj.value = "Boolean"; + + Object.defineProperty(obj, "property", boolObj); + + return obj.property === "Boolean"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-143-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-143-1.js new file mode 100644 index 0000000000..0b526d0867 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-143-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-143-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-143-1.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + Number.prototype.value = "Number"; + var numObj = new Number(-2); + + Object.defineProperty(obj, "property", numObj); + + return obj.property === "Number"; + } finally { + delete Number.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-143.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-143.js new file mode 100644 index 0000000000..bd98c61fe7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-143.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-143", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-143.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var numObj = new Number(-2); + + numObj.value = "Number"; + + Object.defineProperty(obj, "property", numObj); + + return obj.property === "Number"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-144-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-144-1.js new file mode 100644 index 0000000000..11f253ae84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-144-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-144-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-144-1.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.value = "Math"; + + Object.defineProperty(obj, "property", Math); + + return obj.property === "Math"; + } finally { + delete Object.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-144.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-144.js new file mode 100644 index 0000000000..47acabed01 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-144.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-144", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-144.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + try { + Math.value = "Math"; + + Object.defineProperty(obj, "property", Math); + + return obj.property === "Math"; + } finally { + delete Math.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-145-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-145-1.js new file mode 100644 index 0000000000..512ff99aed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-145-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-145-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-145-1.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + Date.prototype.value = "Date"; + var dateObj = new Date(); + + Object.defineProperty(obj, "property", dateObj); + + return obj.property === "Date"; + } finally { + delete Date.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-145.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-145.js new file mode 100644 index 0000000000..64c3b92bc3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-145.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-145", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-145.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var dateObj = new Date(); + + dateObj.value = "Date"; + + Object.defineProperty(obj, "property", dateObj); + + return obj.property === "Date"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-146-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-146-1.js new file mode 100644 index 0000000000..5028595ede --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-146-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-146-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-146-1.js", + + description: "Object.defineProperty - 'Attributes' is a RegExp object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + RegExp.prototype.value = "RegExp"; + var regObj = new RegExp(); + + Object.defineProperty(obj, "property", regObj); + + return obj.property === "RegExp"; + } finally { + delete RegExp.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-146.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-146.js new file mode 100644 index 0000000000..2e062383f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-146.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-146", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-146.js", + + description: "Object.defineProperty - 'Attributes' is a RegExp object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = { }; + + var regObj = new RegExp(); + + regObj.value = "RegExp"; + + Object.defineProperty(obj, "property", regObj); + + return obj.property === "RegExp"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-147-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-147-1.js new file mode 100644 index 0000000000..55fea7ae94 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-147-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-147-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-147-1.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.value = "JSON"; + + Object.defineProperty(obj, "property", JSON); + + return obj.property === "JSON"; + } finally { + delete Object.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-147.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-147.js new file mode 100644 index 0000000000..662ac068b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-147.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-147", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-147.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + try { + JSON.value = "JSON"; + + Object.defineProperty(obj, "property", JSON); + + return obj.property === "JSON"; + } finally { + delete JSON.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-148-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-148-1.js new file mode 100644 index 0000000000..d9b5509f49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-148-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-148-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-148-1.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + Error.prototype.value = "Error"; + var errObj = new Error(); + + Object.defineProperty(obj, "property", errObj); + + return obj.property === "Error"; + } finally { + delete Error.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-148.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-148.js new file mode 100644 index 0000000000..bc107710c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-148.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-148", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-148.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var errObj = new Error(); + + errObj.value = "Error"; + + Object.defineProperty(obj, "property", errObj); + + return obj.property === "Error"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-149-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-149-1.js new file mode 100644 index 0000000000..e888f53fff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-149-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-149-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-149-1.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'value' property of prototype object (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + try { + Object.prototype.value = "arguments"; + var argObj = (function () { return arguments; })(); + + + Object.defineProperty(obj, "property", argObj); + + return obj.property === "arguments"; + } finally { + delete Object.prototype.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-149.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-149.js new file mode 100644 index 0000000000..9c515fdb4b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-149.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-149", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-149.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var argObj = (function () { return arguments; })(); + + argObj.value = "arguments"; + + Object.defineProperty(obj, "property", argObj); + + return obj.property === "arguments"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-15.js new file mode 100644 index 0000000000..8d855d0118 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-15.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-15.js", + + description: "Object.defineProperty - 'Attributes' is undefined (8.10.5 step 1)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperty(obj, "property", undefined); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-151.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-151.js new file mode 100644 index 0000000000..23889f583e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-151.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-151", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-151.js", + + description: "Object.defineProperty - 'Attributes' is the global object that uses Object's [[Get]] method to access the 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + try { + fnGlobalObject().value = "global"; + + Object.defineProperty(obj, "property", fnGlobalObject()); + + return obj.property === "global"; + } finally { + delete fnGlobalObject().value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-152.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-152.js new file mode 100644 index 0000000000..ebfd57c57e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-152.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-152", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-152.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is present (8.10.5 step 6)", + + test: function testcase() { + var obj = {}; + + var attr = { + writable: false + }; + + Object.defineProperty(obj, "property", attr); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-153.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-153.js new file mode 100644 index 0000000000..faa5625de3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-153.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-153", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-153.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is not present (8.10.5 step 6)", + + test: function testcase() { + var obj = {}; + + var attr = { + value: 100 + }; + + Object.defineProperty(obj, "property", attr); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-154.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-154.js new file mode 100644 index 0000000000..5c335ab06b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-154.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-154", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-154.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is own data property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var attr = { + writable: true + }; + + Object.defineProperty(obj, "property", attr); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-155.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-155.js new file mode 100644 index 0000000000..f10676d743 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-155.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: "15.2.3.6-3-155", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-155.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is an inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var proto = { + writable: true + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-156.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-156.js new file mode 100644 index 0000000000..ac3a59aa12 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-156.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-156", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-156.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is own data property that overrides an inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var proto = { + writable: false + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + child.writable = true; + + Object.defineProperty(obj, "property", child); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-157.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-157.js new file mode 100644 index 0000000000..8df5a18111 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-157.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-3-157", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-157.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is own data property that overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var proto = { }; + Object.defineProperty(proto, "writable", { + get : function () { + return false; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "writable", { + value: true + }); + + Object.defineProperty(obj, "property", child); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-158.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-158.js new file mode 100644 index 0000000000..30df226eda --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-158.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-158", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-158.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is own accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var attr = { }; + Object.defineProperty(attr, "writable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", attr); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-159.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-159.js new file mode 100644 index 0000000000..4d598e6d1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-159.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-3-159", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-159.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "writable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-16.js new file mode 100644 index 0000000000..d85d55eafc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-16.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: "15.2.3.6-3-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-16.js", + + description: "Object.defineProperty - 'Attributes' is null (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.defineProperty({}, "property", null); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-160.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-160.js new file mode 100644 index 0000000000..3b03539ef3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-160.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-3-160", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-160.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is own accessor property that overrides an inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + writable: false + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "writable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", child); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-161.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-161.js new file mode 100644 index 0000000000..de34e069f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-161.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-3-161", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-161.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is own accessor property that overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "writable", { + get: function () { + return false; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "writable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", child); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-162.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-162.js new file mode 100644 index 0000000000..2437941a31 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-162.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-3-162", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-162.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is own accessor property without a get function (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var attr = {}; + Object.defineProperty(attr, "writable", { + set: function () { } + }); + + Object.defineProperty(obj, "property", attr); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-163.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-163.js new file mode 100644 index 0000000000..1783006a2c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-163.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-3-163", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-163.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is own accessor property(without a get function) that overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "writable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "writable", { + set: function () { } + }); + + Object.defineProperty(obj, "property", child); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-164.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-164.js new file mode 100644 index 0000000000..70afd0b452 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-164.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-164", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-164.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is an inherited accessor property without a get function (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "writable", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-165-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-165-1.js new file mode 100644 index 0000000000..4a9606a8d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-165-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: "15.2.3.6-3-165-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-165-1.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + try { + Function.prototype.writable = true; + var funObj = function (a, b) { + return a + b; + }; + + Object.defineProperty(obj, "property", funObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Function.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-165.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-165.js new file mode 100644 index 0000000000..0887804558 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-165.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-165", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-165.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var funObj = function (a, b) { + return a + b; + }; + + funObj.writable = true; + + Object.defineProperty(obj, "property", funObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-166-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-166-1.js new file mode 100644 index 0000000000..b8b0550de8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-166-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-166-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-166-1.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + try { + Array.prototype.writable = true; + var arrObj = [1, 2, 3]; + + Object.defineProperty(obj, "property", arrObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Array.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-166.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-166.js new file mode 100644 index 0000000000..22166864b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-166.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-166", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-166.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var arrObj = [1, 2, 3]; + + arrObj.writable = true; + + Object.defineProperty(obj, "property", arrObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-167-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-167-1.js new file mode 100644 index 0000000000..4c0ea11688 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-167-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-167-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-167-1.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + try { + String.prototype.writable = true; + var strObj = new String("abc"); + + Object.defineProperty(obj, "property", strObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete String.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-167.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-167.js new file mode 100644 index 0000000000..3a9b8c3a6d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-167.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-167", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-167.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var strObj = new String("abc"); + + strObj.writable = true; + + Object.defineProperty(obj, "property", strObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-168-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-168-1.js new file mode 100644 index 0000000000..54f366e716 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-168-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-168-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-168-1.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + try { + Boolean.prototype.writable = true; + var boolObj = new Boolean(true); + + Object.defineProperty(obj, "property", boolObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Boolean.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-168.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-168.js new file mode 100644 index 0000000000..58a560314e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-168.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-168", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-168.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var boolObj = new Boolean(true); + + boolObj.writable = true; + + Object.defineProperty(obj, "property", boolObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-169-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-169-1.js new file mode 100644 index 0000000000..473e106803 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-169-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-169-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-169-1.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + try { + Number.prototype.writable = true; + var numObj = new Number(-2); + + Object.defineProperty(obj, "property", numObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Number.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-169.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-169.js new file mode 100644 index 0000000000..03384c4c19 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-169.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-169", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-169.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var numObj = new Number(-2); + + numObj.writable = true; + + Object.defineProperty(obj, "property", numObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-17.js new file mode 100644 index 0000000000..4c9d70fa67 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-17.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: "15.2.3.6-3-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-17.js", + + description: "Object.defineProperty - 'Attributes' is a boolean primitive (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.defineProperty({}, "property", true); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-170-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-170-1.js new file mode 100644 index 0000000000..aee358e3d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-170-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-170-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-170-1.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.writable = true; + + Object.defineProperty(obj, "property", Math); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Object.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-170.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-170.js new file mode 100644 index 0000000000..e0cc7fdbb5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-170.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-170", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-170.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + try { + Math.writable = true; + + Object.defineProperty(obj, "property", Math); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Math.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-171-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-171-1.js new file mode 100644 index 0000000000..4d46972bb8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-171-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-171-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-171-1.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + try { + Date.prototype.writable = true; + + dateObj = new Date(); + + Object.defineProperty(obj, "property", dateObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Date.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-171.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-171.js new file mode 100644 index 0000000000..f444128c85 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-171.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-171", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-171.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var dateObj = new Date(); + + dateObj.writable = true; + + Object.defineProperty(obj, "property", dateObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-172-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-172-1.js new file mode 100644 index 0000000000..8b5b7f679f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-172-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-172-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-172-1.js", + + description: "Object.defineProperty - 'Attributes' is a RegExp object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + try { + RegExp.prototype.writable = true; + + var regObj = new RegExp(); + + Object.defineProperty(obj, "property", regObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete RegExp.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-172.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-172.js new file mode 100644 index 0000000000..1db4562c04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-172.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-172", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-172.js", + + description: "Object.defineProperty - 'Attributes' is a RegExp object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var regObj = new RegExp(); + + regObj.writable = true; + + Object.defineProperty(obj, "property", regObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-173-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-173-1.js new file mode 100644 index 0000000000..fff148ebea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-173-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-173-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-173-1.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.writable = true; + + Object.defineProperty(obj, "property", JSON); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Object.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-173.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-173.js new file mode 100644 index 0000000000..cfadc615ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-173.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-173", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-173.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + try { + JSON.writable = true; + + Object.defineProperty(obj, "property", JSON); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete JSON.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-174-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-174-1.js new file mode 100644 index 0000000000..3b77497b06 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-174-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-174-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-174-1.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + try { + Error.prototype.writable = true; + + var errObj = new Error(); + + Object.defineProperty(obj, "property", errObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Error.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-174.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-174.js new file mode 100644 index 0000000000..767c83b700 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-174.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-174", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-174.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = { }; + + var errObj = new Error(); + + errObj.writable = true; + + Object.defineProperty(obj, "property", errObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-175-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-175-1.js new file mode 100644 index 0000000000..09d300709a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-175-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-175-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-175-1.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'writable' property of prototype object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + try { + Object.prototype.writable = true; + + var argObj = (function () { return arguments; })(); + + Object.defineProperty(obj, "property", argObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete Object.prototype.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-175.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-175.js new file mode 100644 index 0000000000..6ccf033274 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-175.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-175", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-175.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var argObj = (function () { return arguments; })(); + + argObj.writable = true; + + Object.defineProperty(obj, "property", argObj); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-177.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-177.js new file mode 100644 index 0000000000..585d17d565 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-177.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-177", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-177.js", + + description: "Object.defineProperty - 'Attributes' is the global object that uses Object's [[Get]] method to access the 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + try { + fnGlobalObject().writable = true; + + Object.defineProperty(obj, "property", fnGlobalObject()); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + } finally { + delete fnGlobalObject().writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-178.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-178.js new file mode 100644 index 0000000000..c3abc71928 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-178.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-178", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-178.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is undefined (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + writable: undefined + }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-179.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-179.js new file mode 100644 index 0000000000..abaf5d626d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-179.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-179", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-179.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is null (8.10.5 step 6.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { writable: null }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-18.js new file mode 100644 index 0000000000..08c39414e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-18.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: "15.2.3.6-3-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-18.js", + + description: "Object.defineProperty - 'Attributes' is a number primitive (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.defineProperty({}, "property", 12); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-180.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-180.js new file mode 100644 index 0000000000..f0622c9911 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-180.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-180", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-180.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is true (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: true }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-181.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-181.js new file mode 100644 index 0000000000..027124fdef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-181.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-181", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-181.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is false (8.10.5 step 6.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { writable: false }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-182.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-182.js new file mode 100644 index 0000000000..8c1ba7b0af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-182.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-182", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-182.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is 0 (8.10.5 step 6.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { writable: 0 }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-183.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-183.js new file mode 100644 index 0000000000..f4fcaaf76f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-183.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-183", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-183.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is +0 (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: +0 }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-184.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-184.js new file mode 100644 index 0000000000..869804956a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-184.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-184", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-184.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is -0 (8.10.5 step 6.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { writable: -0 }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-185.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-185.js new file mode 100644 index 0000000000..e88a185740 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-185.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-185", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-185.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is NaN (8.10.5 step 6.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { writable: NaN}); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-186.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-186.js new file mode 100644 index 0000000000..ae4819d6e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-186.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-186", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-186.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a positive number (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: 12345 }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-187.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-187.js new file mode 100644 index 0000000000..74864fdf6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-187.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-187", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-187.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a negative number (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: -12345 }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-188.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-188.js new file mode 100644 index 0000000000..704953c879 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-188.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-188", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-188.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is an empty string (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: "" }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (typeof (obj.property) === "undefined"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-189.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-189.js new file mode 100644 index 0000000000..ab616527b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-189.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-189", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-189.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a non-empty string (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: " " }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-19.js new file mode 100644 index 0000000000..725b87d299 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-19.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: "15.2.3.6-3-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-19.js", + + description: "Object.defineProperty - 'Attributes' is a string primitive (8.10.5 step 1)", + + test: function testcase() { + + try { + Object.defineProperty({}, "property", "abc"); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-190.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-190.js new file mode 100644 index 0000000000..b38f1db7de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-190.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-190", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-190.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a Function object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + writable: function () { } + }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-191.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-191.js new file mode 100644 index 0000000000..c969442559 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-191.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-191", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-191.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is an Array object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: [1, 2, 3] }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-192.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-192.js new file mode 100644 index 0000000000..4c767b4cde --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-192.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-192", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-192.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a String object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: new String("bbq") }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-193.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-193.js new file mode 100644 index 0000000000..b19d3e2c83 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-193.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-193", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-193.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a Boolean object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: new Boolean(true) }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-194.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-194.js new file mode 100644 index 0000000000..3278ffcc22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-194.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-194", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-194.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a Number object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: new Number(123) }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-195.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-195.js new file mode 100644 index 0000000000..7a2e45a191 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-195.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-195", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-195.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is the Math object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: Math }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-196.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-196.js new file mode 100644 index 0000000000..88f0bd4b54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-196.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-196", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-196.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a Date object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: new Date() }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-197.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-197.js new file mode 100644 index 0000000000..ea8bb8649a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-197.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-197", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-197.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a RegExp object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + writable: new RegExp() + }); + + var beforeWrite = obj.hasOwnProperty("property") && typeof obj.property === "undefined"; + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite && afterWrite; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-198.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-198.js new file mode 100644 index 0000000000..f14c274804 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-198.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-198", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-198.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is the JSON object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: JSON }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-199.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-199.js new file mode 100644 index 0000000000..e3f6cd79cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-199.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-199", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-199.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is a Error object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: new SyntaxError() }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-2.js new file mode 100644 index 0000000000..5abe89418f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-2.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-2.js", + +description: "Object.defineProperty throws TypeError if desc has 'get' and 'writable' present(8.10.5 step 9.a)", + +test: function testcase() { + var o = {}; + + // dummy getter + var getter = function () { return 1; } + var desc = { get: getter, writable: false }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-20.js new file mode 100644 index 0000000000..f9e8d91ab2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-20.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-20.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is present (8.10.5 step 3)", + + test: function testcase() { + + var obj = {}; + + var accessed = false; + Object.defineProperty(obj, "property", { + enumerable: false + }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed && obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-200.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-200.js new file mode 100644 index 0000000000..20541896de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-200.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-200", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-200.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is the Argument object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + var argObj = (function () { return arguments; })(1, true, "a"); + + Object.defineProperty(obj, "property", { writable: argObj }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-202.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-202.js new file mode 100644 index 0000000000..a1e3bc23b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-202.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-202", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-202.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is the global object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + writable: fnGlobalObject() + }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-203.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-203.js new file mode 100644 index 0000000000..cd55de2b5d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-203.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-203", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-203.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is treated as true when it is a string(value is 'false') (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: "false" }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-204.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-204.js new file mode 100644 index 0000000000..e13a15e7bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-204.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-204", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-204.js", + + description: "Object.defineProperty - 'writable' property in 'Attributes' is treated as true when it is new Boolean(false) (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { writable: new Boolean(false) }); + + var beforeWrite = obj.hasOwnProperty("property"); + + obj.property = "isWritable"; + + var afterWrite = (obj.property === "isWritable"); + + return beforeWrite === true && afterWrite === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-205.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-205.js new file mode 100644 index 0000000000..7a8a984f8e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-205.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: "15.2.3.6-3-205", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-205.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is present (8.10.5 step 7)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + get: function () { + return "present"; + } + }); + + return obj.property === "present"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-206.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-206.js new file mode 100644 index 0000000000..fe56313879 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-206.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: "15.2.3.6-3-206", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-206.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is not present (8.10.5 step 7)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + set: function () {} + }); + + return typeof obj.property === "undefined" && obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-207.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-207.js new file mode 100644 index 0000000000..22b70f837a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-207.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-207", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-207.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is own data property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var attributes = { + get: function () { + return "ownDataProperty"; + } + }; + + Object.defineProperty(obj, "property", attributes); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-208.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-208.js new file mode 100644 index 0000000000..44df5af442 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-208.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-208", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-208.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is an inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var proto = { + get: function () { + return "inheritedDataProperty"; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + return obj.property === "inheritedDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-209.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-209.js new file mode 100644 index 0000000000..7a7bcf2c2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-209.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-209", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-209.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is own data property that overrides an inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var proto = { + get: function () { + return "inheritedDataProperty"; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + child.get = function () { + return "ownDataProperty"; + }; + + Object.defineProperty(obj, "property", child); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-21.js new file mode 100644 index 0000000000..79f9f610f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-21.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-21.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is not present (8.10.5 step 3)", + + test: function testcase() { + + var obj = {}; + + var attr = {}; + var accessed = false; + Object.defineProperty(obj, "property", attr); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-210.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-210.js new file mode 100644 index 0000000000..cedb025588 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-210.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-3-210", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-210.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is own data property that overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + var fun = function () { + return "inheritedAccessorProperty"; + }; + Object.defineProperty(proto, "get", { + get: function () { + return fun; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "get", { + value: function () { + return "ownDataProperty"; + } + }); + + Object.defineProperty(obj, "property", child); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-211.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-211.js new file mode 100644 index 0000000000..663afb04e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-211.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-211", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-211.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is own accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var attributes = {}; + Object.defineProperty(attributes, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + Object.defineProperty(obj, "property", attributes); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-212.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-212.js new file mode 100644 index 0000000000..2a910050ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-212.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-212", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-212.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + return obj.property === "inheritedAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-213.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-213.js new file mode 100644 index 0000000000..77de24087f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-213.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-213", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-213.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is own accessor property that overrides an inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var proto = { + get: function () { + return "inheritedDataProperty"; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + Object.defineProperty(obj, "property", child); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-214.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-214.js new file mode 100644 index 0000000000..d787177490 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-214.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-3-214", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-214.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is own accessor property that overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + Object.defineProperty(obj, "property", child); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-215.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-215.js new file mode 100644 index 0000000000..b02d94c3b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-215.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-215", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-215.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is own accessor property without a get function (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var attributes = {}; + Object.defineProperty(attributes, "get", { + set: function () { } + }); + + Object.defineProperty(obj, "property", attributes); + + return typeof obj.property === "undefined" && obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-216.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-216.js new file mode 100644 index 0000000000..a959f66c69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-216.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: "15.2.3.6-3-216", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-216.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is own accessor property(without a get function) that overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "get", { + set: function () { } + }); + + Object.defineProperty(obj, "property", child); + + return obj.hasOwnProperty("property") && typeof obj.property === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-217.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-217.js new file mode 100644 index 0000000000..fe987d3e6e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-217.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-217", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-217.js", + + description: "Object.defineProperty - 'get' property in 'Attributes' is an inherited accessor property without a get function (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + Object.defineProperty(proto, "get", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + return obj.hasOwnProperty("property") && typeof obj.property === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-218-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-218-1.js new file mode 100644 index 0000000000..b8a7d8de14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-218-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-218-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-218-1.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + Function.prototype.get = function () { + return "functionGetProperty"; + }; + var funObj = function () { }; + + Object.defineProperty(obj, "property", funObj); + + return obj.property === "functionGetProperty"; + } finally { + delete Function.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-218.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-218.js new file mode 100644 index 0000000000..9603ef1445 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-218.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-218", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-218.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var funObj = function () { }; + + funObj.get = function () { + return "functionGetProperty"; + }; + + Object.defineProperty(obj, "property", funObj); + + return obj.property === "functionGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-219-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-219-1.js new file mode 100644 index 0000000000..373eb53176 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-219-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-219-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-219-1.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + Array.prototype.get = function () { + return "arrayGetProperty"; + }; + var arrObj = []; + + Object.defineProperty(obj, "property", arrObj); + + return obj.property === "arrayGetProperty"; + } finally { + delete Array.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-219.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-219.js new file mode 100644 index 0000000000..3aa509d0cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-219.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-219", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-219.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var arrObj = []; + + arrObj.get = function () { + return "arrayGetProperty"; + }; + + Object.defineProperty(obj, "property", arrObj); + + return obj.property === "arrayGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-22.js new file mode 100644 index 0000000000..4779c1a428 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-22.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-22.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is own data property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { + enumerable: true + }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-220-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-220-1.js new file mode 100644 index 0000000000..e0ed84d8c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-220-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-220-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-220-1.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + String.prototype.get = function () { + return "stringGetProperty"; + }; + var strObj = new String(); + + Object.defineProperty(obj, "property", strObj); + + return obj.property === "stringGetProperty"; + } finally { + delete String.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-220.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-220.js new file mode 100644 index 0000000000..0bcf9d32e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-220.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-220", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-220.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var strObj = new String(); + + strObj.get = function () { + return "stringGetProperty"; + }; + + Object.defineProperty(obj, "property", strObj); + + return obj.property === "stringGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-221-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-221-1.js new file mode 100644 index 0000000000..3e54ae5caf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-221-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-221-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-221-1.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + Boolean.prototype.get = function () { + return "booleanGetProperty"; + }; + var boolObj = new Boolean(true); + + Object.defineProperty(obj, "property", boolObj); + + return obj.property === "booleanGetProperty"; + } finally { + delete Boolean.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-221.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-221.js new file mode 100644 index 0000000000..712664721d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-221.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-221", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-221.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var boolObj = new Boolean(true); + + boolObj.get = function () { + return "booleanGetProperty"; + }; + + Object.defineProperty(obj, "property", boolObj); + + return obj.property === "booleanGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-222-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-222-1.js new file mode 100644 index 0000000000..27cd7890db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-222-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-222-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-222-1.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + Number.prototype.get = function () { + return "numberGetProperty"; + }; + var numObj = new Number(-2); + + Object.defineProperty(obj, "property", numObj); + + return obj.property === "numberGetProperty"; + } finally { + delete Number.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-222.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-222.js new file mode 100644 index 0000000000..619446e75f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-222.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-222", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-222.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var numObj = new Number(-2); + + numObj.get = function () { + return "numberGetProperty"; + }; + + Object.defineProperty(obj, "property", numObj); + + return obj.property === "numberGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-223-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-223-1.js new file mode 100644 index 0000000000..c8c2ff278a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-223-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-223-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-223-1.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.get = function () { + return "mathGetProperty"; + }; + + Object.defineProperty(obj, "property", Math); + + return obj.property === "mathGetProperty"; + } finally { + delete Object.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-223.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-223.js new file mode 100644 index 0000000000..a02eff4c94 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-223.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-223", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-223.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + try { + Math.get = function () { + return "mathGetProperty"; + }; + + Object.defineProperty(obj, "property", Math); + + return obj.property === "mathGetProperty"; + } finally { + delete Math.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-224-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-224-1.js new file mode 100644 index 0000000000..7400ccb123 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-224-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-224-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-224-1.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + Date.prototype.get = function () { + return "dateGetProperty"; + }; + var dateObj = new Date(); + + Object.defineProperty(obj, "property", dateObj); + + return obj.property === "dateGetProperty"; + } finally { + delete Date.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-224.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-224.js new file mode 100644 index 0000000000..4be9adb137 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-224.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-224", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-224.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var dateObj = new Date(); + + dateObj.get = function () { + return "dateGetProperty"; + }; + + Object.defineProperty(obj, "property", dateObj); + + return obj.property === "dateGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-225-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-225-1.js new file mode 100644 index 0000000000..2870733157 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-225-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-225-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-225-1.js", + + description: "Object.defineProperty - 'Attributes' is a RegExp object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + RegExp.prototype.get = function () { + return "regExpGetProperty"; + }; + var regObj = new RegExp(); + + + Object.defineProperty(obj, "property", regObj); + + return obj.property === "regExpGetProperty"; + } finally { + delete RegExp.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-225.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-225.js new file mode 100644 index 0000000000..29eaf186a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-225.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-225", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-225.js", + + description: "Object.defineProperty - 'Attributes' is a RegExp object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var regObj = new RegExp(); + + regObj.get = function () { + return "regExpGetProperty"; + }; + + Object.defineProperty(obj, "property", regObj); + + return obj.property === "regExpGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-226-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-226-1.js new file mode 100644 index 0000000000..db360f86b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-226-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-226-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-226-1.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.get = function () { + return "jsonGetProperty"; + }; + + Object.defineProperty(obj, "property", JSON); + + return obj.property === "jsonGetProperty"; + } finally { + delete Object.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-226.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-226.js new file mode 100644 index 0000000000..9642c3edb9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-226.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-226", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-226.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + try { + JSON.get = function () { + return "jsonGetProperty"; + }; + + Object.defineProperty(obj, "property", JSON); + + return obj.property === "jsonGetProperty"; + } finally { + delete JSON.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-227-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-227-1.js new file mode 100644 index 0000000000..64b8a8040f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-227-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-227-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-227-1.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + Error.prototype.get = function () { + return "errorGetProperty"; + }; + var errObj = new Error(); + + Object.defineProperty(obj, "property", errObj); + + return obj.property === "errorGetProperty"; + } finally { + delete Error.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-227.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-227.js new file mode 100644 index 0000000000..c260f35e87 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-227.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-227", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-227.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var errObj = new Error(); + + errObj.get = function () { + return "errorGetProperty"; + }; + + Object.defineProperty(obj, "property", errObj); + + return obj.property === "errorGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-228-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-228-1.js new file mode 100644 index 0000000000..6f9f7c36bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-228-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-228-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-228-1.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'get' property of prototype object (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + try { + Object.prototype.get = function () { + return "argumentGetProperty"; + }; + var argObj = (function () { return arguments; })(); + + Object.defineProperty(obj, "property", argObj); + + return obj.property === "argumentGetProperty"; + } finally { + delete Object.prototype.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-228.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-228.js new file mode 100644 index 0000000000..f9dc51e27a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-228.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-228", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-228.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var argObj = (function () { return arguments; })(); + + argObj.get = function () { + return "argumentGetProperty"; + }; + + Object.defineProperty(obj, "property", argObj); + + return obj.property === "argumentGetProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-23.js new file mode 100644 index 0000000000..e2e194a385 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-23.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-23.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is an inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var proto = {}; + Object.defineProperty(proto, "enumerable", { + value: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-230.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-230.js new file mode 100644 index 0000000000..0e69e2eb5e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-230.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-230", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-230.js", + + description: "Object.defineProperty - 'Attributes' is the global object that uses Object's [[Get]] method to access the 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + try { + fnGlobalObject().get = function () { + return "globalGetProperty"; + }; + + Object.defineProperty(obj, "property", fnGlobalObject()); + + return obj.property === "globalGetProperty"; + } finally { + delete fnGlobalObject().get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-231.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-231.js new file mode 100644 index 0000000000..b0381db21c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-231.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: "15.2.3.6-3-231", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-231.js", + + description: "Object.defineProperty - value of 'get' property in 'Attributes' is undefined (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + get: undefined + }); + + return obj.hasOwnProperty("property") && typeof obj.property === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-232.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-232.js new file mode 100644 index 0000000000..d3fc40a4a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-232.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: "15.2.3.6-3-232", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-232.js", + + description: "Object.defineProperty - value of 'get' property in 'Attributes' is a function (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + get: function () { + return "getFunction"; + } + }); + + return obj.hasOwnProperty("property") && obj.property === "getFunction"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-235.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-235.js new file mode 100644 index 0000000000..e43d8a2933 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-235.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-235", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-235.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is present (8.10.5 step 8)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + Object.defineProperty(obj, "property", { + set: function (value) { + data = value; + } + }); + + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-236.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-236.js new file mode 100644 index 0000000000..586b85fed0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-236.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-236", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-236.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is not present (8.10.5 step 8)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + get: function () { + return 11; + } + }); + + obj.property = 14; + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + return obj.hasOwnProperty("property") && obj.property === 11 && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-237.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-237.js new file mode 100644 index 0000000000..74a863fac9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-237.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-237", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-237.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is own data property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + Object.defineProperty(obj, "property", { + set: function (value) { + data = value; + } + }); + + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-238.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-238.js new file mode 100644 index 0000000000..6c066050d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-238.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-238", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-238.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is an inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var proto = { + set: function (value) { + data = value; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-239.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-239.js new file mode 100644 index 0000000000..50ef574958 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-239.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-239", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-239.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is own data property that overrides an inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data1 = "data"; + var data2 = "data"; + var proto = { + set: function (value) { + data1 = value; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + child.set = function (value) { + data2 = value; + }; + + Object.defineProperty(obj, "property", child); + + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data1 === "data" && data2 === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-24.js new file mode 100644 index 0000000000..5fc5fa1b73 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-24.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-3-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-24.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is own data property that overrides an inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var proto = {}; + Object.defineProperty(proto, "enumerable", { + value: false + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "enumerable", { + value: true + }); + + Object.defineProperty(obj, "property", child); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-240.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-240.js new file mode 100644 index 0000000000..f54e61fb64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-240.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-3-240", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-240.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is own data property that overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + var data1 = "data"; + var data2 = "data"; + + Object.defineProperty(proto, "set", { + get: function () { + return function (value) { + data1 = value; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "set", { + value: function (value) { + data2 = value; + } + }); + + Object.defineProperty(obj, "property", child); + + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data1 === "data" && data2 === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-241.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-241.js new file mode 100644 index 0000000000..f77f233871 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-241.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-241", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-241.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is own accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var attributes = {}; + Object.defineProperty(attributes, "set", { + get: function () { + return function (value) { + data = value; + }; + } + }); + + Object.defineProperty(obj, "property", attributes); + obj.property = "ownAccessorProperty"; + + return obj.hasOwnProperty("property") && data === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-242.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-242.js new file mode 100644 index 0000000000..b3995f9ff1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-242.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-3-242", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-242.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + var data = "data"; + Object.defineProperty(proto, "set", { + get: function () { + return function (value) { + data = value; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + obj.property = "inheritedAccessorProperty"; + + return obj.hasOwnProperty("property") && data === "inheritedAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-243.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-243.js new file mode 100644 index 0000000000..35201b9131 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-243.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-3-243", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-243.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is own accessor property that overrides an inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data1 = "data"; + var data2 = "data"; + + var proto = { + set: function (value) { + data1 = value; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "set", { + get: function () { + return function (value) { + data2 = value; + }; + } + }); + + Object.defineProperty(obj, "property", child); + obj.property = "ownAccessorProperty"; + + return obj.hasOwnProperty("property") && data1 === "data" && data2 === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-244.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-244.js new file mode 100644 index 0000000000..23e746fdb8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-244.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-3-244", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-244.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is own accessor property that overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + var data1 = "data"; + var data2 = "data"; + Object.defineProperty(proto, "set", { + get: function () { + return function (value) { + data1 = value; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "set", { + get: function () { + return function (value) { + data2 = value; + }; + } + }); + + Object.defineProperty(obj, "property", child); + obj.property = "ownAccessorProperty"; + + return obj.hasOwnProperty("property") && data1 === "data" && data2 === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-245.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-245.js new file mode 100644 index 0000000000..4e412db471 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-245.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-245", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-245.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is own accessor property without a get function (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + + var attributes = {}; + Object.defineProperty(attributes, "set", { + set: function () { } + }); + + Object.defineProperty(obj, "property", attributes); + + obj.property = "overrideOwnData"; + + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + return obj.hasOwnProperty("property") && typeof obj.property === "undefined" && + typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-246.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-246.js new file mode 100644 index 0000000000..c7273170c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-246.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-3-246", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-246.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is own accessor property(without a get function) that overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + var data = "data"; + Object.defineProperty(proto, "set", { + get: function () { + return function (value) { + data = value; + }; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "set", { + set: function () { } + }); + + Object.defineProperty(obj, "property", child); + + obj.property = "overrideData"; + return obj.hasOwnProperty("property") && typeof obj.property === "undefined" && data === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-247.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-247.js new file mode 100644 index 0000000000..641f0d9aa2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-247.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-247", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-247.js", + + description: "Object.defineProperty - 'set' property in 'Attributes' is an inherited accessor property without a get function (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var proto = {}; + Object.defineProperty(proto, "set", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + obj.property = "overrideData"; + return obj.hasOwnProperty("property") && typeof obj.property === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-248-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-248-1.js new file mode 100644 index 0000000000..6a5bdd72fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-248-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-248-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-248-1.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + try { + Function.prototype.set = function (value) { + data = value; + }; + var funObj = function () { }; + + Object.defineProperty(obj, "property", funObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Function.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-248.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-248.js new file mode 100644 index 0000000000..713a6498d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-248.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-248", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-248.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var funObj = function () { }; + + funObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", funObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-249-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-249-1.js new file mode 100644 index 0000000000..7842738c81 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-249-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-249-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-249-1.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + try { + Array.prototype.set = function (value) { + data = value; + }; + var arrObj = []; + + Object.defineProperty(obj, "property", arrObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Array.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-249.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-249.js new file mode 100644 index 0000000000..48c98e9f34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-249.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-249", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-249.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var arrObj = []; + + arrObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", arrObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-25.js new file mode 100644 index 0000000000..7d3f85e78c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-25.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-3-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-25.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is own data property that overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var proto = {}; + Object.defineProperty(proto, "enumerable", { + get: function () { + return false; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "enumerable", { + value: true + }); + + Object.defineProperty(obj, "property", child); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-250-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-250-1.js new file mode 100644 index 0000000000..b39d6fd466 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-250-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-250-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-250-1.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + try { + String.prototype.set = function (value) { + data = value; + }; + var strObj = new String(); + var data = "data"; + + Object.defineProperty(obj, "property", strObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete String.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-250.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-250.js new file mode 100644 index 0000000000..71352b6144 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-250.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-250", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-250.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var strObj = new String(); + var data = "data"; + + strObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", strObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-251-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-251-1.js new file mode 100644 index 0000000000..52e26731cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-251-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-251-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-251-1.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + try { + Boolean.prototype.set = function (value) { + data = value; + }; + var boolObj = new Boolean(true); + + Object.defineProperty(obj, "property", boolObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Boolean.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-251.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-251.js new file mode 100644 index 0000000000..308ee759d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-251.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-251", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-251.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var boolObj = new Boolean(true); + + boolObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", boolObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-252-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-252-1.js new file mode 100644 index 0000000000..c6b9d031d9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-252-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-252-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-252-1.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + try { + Number.prototype.set = function (value) { + data = value; + }; + var numObj = new Number(-2); + + Object.defineProperty(obj, "property", numObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Number.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-252.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-252.js new file mode 100644 index 0000000000..3a1bff597d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-252.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-252", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-252.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var numObj = new Number(-2); + + numObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", numObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-253-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-253-1.js new file mode 100644 index 0000000000..3705cfe5d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-253-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-253-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-253-1.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + try { + Object.prototype.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", Math); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Object.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-253.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-253.js new file mode 100644 index 0000000000..8e2e58d5b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-253.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-253", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-253.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + try { + Math.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", Math); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Math.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-254-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-254-1.js new file mode 100644 index 0000000000..e39f5cee64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-254-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-254-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-254-1.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + try { + Date.prototype.set = function (value) { + data = value; + }; + var dateObj = new Date(); + + Object.defineProperty(obj, "property", dateObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Date.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-254.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-254.js new file mode 100644 index 0000000000..e36edd3f1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-254.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-254", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-254.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var dateObj = new Date(); + + dateObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", dateObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-255-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-255-1.js new file mode 100644 index 0000000000..8c5dd297b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-255-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-255-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-255-1.js", + + description: "Object.defineProperty - 'Attributes' is a RegExp object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + try { + RegExp.prototype.set = function (value) { + data = value; + }; + var regObj = new RegExp(); + + Object.defineProperty(obj, "property", regObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete RegExp.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-255.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-255.js new file mode 100644 index 0000000000..3915b3ae8e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-255.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-255", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-255.js", + + description: "Object.defineProperty - 'Attributes' is a RegExp object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var regObj = new RegExp(); + + regObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", regObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-256-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-256-1.js new file mode 100644 index 0000000000..3f4c10755e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-256-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-256-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-256-1.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + try { + Object.prototype.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", JSON); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Object.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-256.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-256.js new file mode 100644 index 0000000000..579dc72624 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-256.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-256", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-256.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + try { + JSON.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", JSON); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete JSON.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-257-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-257-1.js new file mode 100644 index 0000000000..d799d5826b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-257-1.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-257-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-257-1.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + try { + Error.prototype.set = function (value) { + data = value; + }; + var errObj = new Error(); + + Object.defineProperty(obj, "property", errObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Error.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-257.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-257.js new file mode 100644 index 0000000000..858dc23894 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-257.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-257", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-257.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var errObj = new Error(); + + errObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", errObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-258-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-258-1.js new file mode 100644 index 0000000000..c42afec48d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-258-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-258-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-258-1.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'set' property of prototype object (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + try { + Object.prototype.set = function (value) { + data = value; + }; + var argObj = (function () { return arguments; })(); + + Object.defineProperty(obj, "property", argObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete Object.prototype.set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-258.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-258.js new file mode 100644 index 0000000000..c7913e882b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-258.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-258", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-258.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + var argObj = (function () { return arguments; })(); + argObj.set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", argObj); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-26.js new file mode 100644 index 0000000000..bc71841681 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-26.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-26.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is own accessor property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var attr = {}; + Object.defineProperty(attr, "enumerable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", attr); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-260.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-260.js new file mode 100644 index 0000000000..1c81a8defe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-260.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-260", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-260.js", + + description: "Object.defineProperty - 'Attributes' is the global object that uses Object's [[Get]] method to access the 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + try { + fnGlobalObject().set = function (value) { + data = value; + }; + + Object.defineProperty(obj, "property", fnGlobalObject()); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + } finally { + delete fnGlobalObject().set; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-261.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-261.js new file mode 100644 index 0000000000..7ec5b63e95 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-261.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-3-261", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-261.js", + + description: "Object.defineProperty - value of 'set' property in 'Attributes' is undefined (8.10.5 step 8.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + set: undefined + }); + + obj.property = "overrideData"; + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + return obj.hasOwnProperty("property") && typeof obj.property === "undefined" && + typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-262.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-262.js new file mode 100644 index 0000000000..7c5c7bceb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-262.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-3-262", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-262.js", + + description: "Object.defineProperty - value of 'set' property in 'Attributes' is a function (8.10.5 step 8.b)", + + test: function testcase() { + var obj = {}; + var data = "data"; + + Object.defineProperty(obj, "property", { + set: function (value) { + data = value; + } + }); + obj.property = "overrideData"; + + return obj.hasOwnProperty("property") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-27.js new file mode 100644 index 0000000000..f61307ab14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-27.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-3-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-27.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var proto = {}; + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-28.js new file mode 100644 index 0000000000..8c9a3c87cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-28.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-3-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-28.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is own accessor property that overrides an inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var proto = { enumerable: false }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(child, "enumerable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", child); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-29.js new file mode 100644 index 0000000000..f302f378c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-29.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.6-3-29", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-29.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is own accessor property that overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + var proto = {}; + + Object.defineProperty(proto, "enumerable", { + get: function () { + return false; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(child, "enumerable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", child); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-3.js new file mode 100644 index 0000000000..8dde1f7cf0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-3.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-3.js", + +description: "Object.defineProperty throws TypeError if desc has 'set' and 'value' present(8.10.5 step 9.a)", + +test: function testcase() { + var o = {}; + + // dummy setter + var setter = function () { } + var desc = { set: setter, value: 101}; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-30.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-30.js new file mode 100644 index 0000000000..6db86ce3e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-30.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-3-30", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-30.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is own accessor property without a get function (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var attr = {}; + Object.defineProperty(attr, "enumerable", { + set: function () { } + }); + + Object.defineProperty(obj, "property", attr); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-31.js new file mode 100644 index 0000000000..ae6aaac27d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-31.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-3-31", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-31.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is own accessor property(without a get function) that overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + var proto = {}; + + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(child, "enumerable", { + set: function () { } + }); + + Object.defineProperty(obj, "property", child); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-32.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-32.js new file mode 100644 index 0000000000..fefdbbf18a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-32.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-32", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-32.js", + + description: "Object.defineProperty - 'enumerable' property in 'Attributes' is an inherited accessor property without a get function (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + var proto = {}; + + Object.defineProperty(proto, "enumerable", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-33-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-33-1.js new file mode 100644 index 0000000000..13cd1eebf9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-33-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-33-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-33-1.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + Function.prototype.enumerable = true; + var fun = function () { }; + + Object.defineProperty(obj, "property", fun); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete Function.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-33.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-33.js new file mode 100644 index 0000000000..192f373595 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-33.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-33", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-33.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var fun = function () { }; + fun.enumerable = true; + + Object.defineProperty(obj, "property", fun); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-34-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-34-1.js new file mode 100644 index 0000000000..59907e0795 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-34-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-34-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-34-1.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + Array.prototype.enumerable = true; + var arrObj = []; + + Object.defineProperty(obj, "property", arrObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete Array.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-34.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-34.js new file mode 100644 index 0000000000..b35e21b9d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-34.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-34", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-34.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var arrObj = []; + arrObj.enumerable = true; + + Object.defineProperty(obj, "property", arrObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-35-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-35-1.js new file mode 100644 index 0000000000..21b0817910 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-35-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-35-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-35-1.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + String.prototype.enumerable = true; + var strObj = new String(); + + Object.defineProperty(obj, "property", strObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete String.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-35.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-35.js new file mode 100644 index 0000000000..a07cdc116c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-35.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-35", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-35.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var strObj = new String(); + strObj.enumerable = true; + + Object.defineProperty(obj, "property", strObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-36-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-36-1.js new file mode 100644 index 0000000000..5357ff5c81 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-36-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-36-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-36-1.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + Boolean.prototype.enumerable = true; + var boolObj = new Boolean(true); + + Object.defineProperty(obj, "property", boolObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete Boolean.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-36.js new file mode 100644 index 0000000000..bd5efa8ac4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-36.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-36", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-36.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var boolObj = new Boolean(true); + boolObj.enumerable = true; + + Object.defineProperty(obj, "property", boolObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-37-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-37-1.js new file mode 100644 index 0000000000..e05add909b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-37-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-37-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-37-1.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + Number.prototype.enumerable = true; + var numObj = new Number(-2); + + Object.defineProperty(obj, "property", numObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete Number.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-37.js new file mode 100644 index 0000000000..db7c7547b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-37.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-37", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-37.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var numObj = new Number(-2); + numObj.enumerable = true; + + Object.defineProperty(obj, "property", numObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-38-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-38-1.js new file mode 100644 index 0000000000..f3253979e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-38-1.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-3-38-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-38-1.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + Object.prototype.enumerable = true; + + Object.defineProperty(obj, "property", Math); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + } finally { + delete Object.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-38.js new file mode 100644 index 0000000000..3bb015cb6c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-38.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-38", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-38.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + try { + Math.enumerable = true; + + Object.defineProperty(obj, "property", Math); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + } finally { + delete Math.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-39-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-39-1.js new file mode 100644 index 0000000000..00b34da76f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-39-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-39-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-39-1.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + try { + Date.prototype.enumerable = true; + var dateObj = new Date(); + + Object.defineProperty(obj, "property", dateObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + } finally { + delete Date.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-39.js new file mode 100644 index 0000000000..afca5f8cd9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-39.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-3-39", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-39.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var dateObj = new Date(); + dateObj.enumerable = true; + + Object.defineProperty(obj, "property", dateObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-4.js new file mode 100644 index 0000000000..5d46ab761b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-4.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-4.js", + +description: "Object.defineProperty throws TypeError if desc has 'set' and 'writable' present(8.10.5 step 9.a)", + +test: function testcase() { + var o = {}; + + // dummy getter + var setter = function () { } + var desc = { set: setter, writable: false }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-40-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-40-1.js new file mode 100644 index 0000000000..e52116af8c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-40-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-40-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-40-1.js", + + description: "Object.defineProperty - 'Attributes' is an RegExp object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + RegExp.prototype.enumerable = true; + var regObj = new RegExp(); + + Object.defineProperty(obj, "property", regObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete RegExp.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-40.js new file mode 100644 index 0000000000..d0943dbd44 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-40.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-40", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-40.js", + + description: "Object.defineProperty - 'Attributes' is an RegExp object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var regObj = new RegExp(); + regObj.enumerable = true; + + Object.defineProperty(obj, "property", regObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-41-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-41-1.js new file mode 100644 index 0000000000..0093875b84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-41-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-41-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-41-1.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + Object.prototype.enumerable = true; + + Object.defineProperty(obj, "property", JSON); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete Object.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-41.js new file mode 100644 index 0000000000..39aeca54f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-41.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-41", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-41.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + try { + JSON.enumerable = true; + + Object.defineProperty(obj, "property", JSON); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete JSON.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-42-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-42-1.js new file mode 100644 index 0000000000..fc7a867a7e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-42-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-42-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-42-1.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + Error.prototype.enumerable = true; + var errObj = new Error(); + + Object.defineProperty(obj, "property", errObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete Error.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-42.js new file mode 100644 index 0000000000..e3de30d985 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-42.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-42", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-42.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var errObj = new Error(); + errObj.enumerable = true; + + Object.defineProperty(obj, "property", errObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-43-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-43-1.js new file mode 100644 index 0000000000..3d2168c925 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-43-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-43-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-43-1.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'enumerable' property of prototype object (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + try { + Object.prototype.enumerable = true; + var argObj = (function () { return arguments; })(); + + Object.defineProperty(obj, "property", argObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete Object.prototype.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-43.js new file mode 100644 index 0000000000..68386bbbc3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-43.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-43", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-43.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + var argObj = (function () { return arguments; })(); + argObj.enumerable = true; + + Object.defineProperty(obj, "property", argObj); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-45.js new file mode 100644 index 0000000000..189aaaadcd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-45.js @@ -0,0 +1,54 @@ + +/// 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: "15.2.3.6-3-45", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-45.js", + + description: "Object.defineProperty - 'Attributes' is the global object that uses Object's [[Get]] method to access the 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + try { + fnGlobalObject().enumerable = true; + + Object.defineProperty(obj, "property", fnGlobalObject()); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + + return accessed; + } finally { + delete fnGlobalObject().enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-46.js new file mode 100644 index 0000000000..15d177ec50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-46.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-46", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-46.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is undefined (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { + enumerable: undefined + }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-47.js new file mode 100644 index 0000000000..2695d3a2e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-47.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-47", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-47.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is null (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: null }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-48.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-48.js new file mode 100644 index 0000000000..047beb67d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-48.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-48", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-48.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is true (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: true }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-49.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-49.js new file mode 100644 index 0000000000..64629cddb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-49.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-49", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-49.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is false (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: false }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-5.js new file mode 100644 index 0000000000..21eee781fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-5.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-5.js", + +description: "Object.defineProperty throws TypeError if getter is not callable but not undefined (Number)(8.10.5 step 7.b)", + +test: function testcase() { + var o = {}; + + // dummy getter + var getter = 42; + var desc = { get: getter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-50.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-50.js new file mode 100644 index 0000000000..a508c672d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-50.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-50", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-50.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is 0 (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: 0 }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-51.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-51.js new file mode 100644 index 0000000000..afca82a040 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-51.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-51", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-51.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is +0 (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: +0 }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-52.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-52.js new file mode 100644 index 0000000000..9055e7f3a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-52.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-52", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-52.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is -0 (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: -0 }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-53.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-53.js new file mode 100644 index 0000000000..5f02f973f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-53.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-53", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-53.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is NaN (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: NaN }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-54.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-54.js new file mode 100644 index 0000000000..707bd592da --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-54.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-54", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-54.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a positive number (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: 12 }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-55.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-55.js new file mode 100644 index 0000000000..efe3af6aea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-55.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-55", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-55.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a negative number (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: -2 }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-56.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-56.js new file mode 100644 index 0000000000..e1e43e1e8d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-56.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-56", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-56.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is an empty string (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: "" }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-57.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-57.js new file mode 100644 index 0000000000..4d2448fa16 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-57.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-57", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-57.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a non-empty string (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: "AB\n\\cd" }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-58.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-58.js new file mode 100644 index 0000000000..da3a6f893b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-58.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-58", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-58.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a Function object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { + enumerable: function () { } + }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-59.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-59.js new file mode 100644 index 0000000000..cfaeaf2b5d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-59.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-59", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-59.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is an Array object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: [] }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-6.js new file mode 100644 index 0000000000..77022bfb27 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-6.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-6", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-6.js", + +description: "Object.defineProperty throws TypeError if getter is not callable but not undefined (Boolean)(8.10.5 step 7.b)", + +test: function testcase() { + var o = {}; + + // dummy getter + var getter = true; + var desc = { get: getter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-60.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-60.js new file mode 100644 index 0000000000..d783cd5b76 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-60.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-60", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-60.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a String Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: new String() }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-61.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-61.js new file mode 100644 index 0000000000..eea3340740 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-61.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-61", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-61.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a Boolean Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: new Boolean() }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-62.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-62.js new file mode 100644 index 0000000000..d2f49f7979 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-62.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-62", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-62.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a Number Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: new Number() }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-63.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-63.js new file mode 100644 index 0000000000..5b711ef2c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-63.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-63", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-63.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is the Math Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: Math }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-64.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-64.js new file mode 100644 index 0000000000..b69ec4b938 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-64.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-64", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-64.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a Date Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: new Date() }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-65.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-65.js new file mode 100644 index 0000000000..38ece5be2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-65.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-65", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-65.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is a RegExp Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: new RegExp() }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-66.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-66.js new file mode 100644 index 0000000000..344a54a703 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-66.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-66", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-66.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is the JSON Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: JSON }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-67.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-67.js new file mode 100644 index 0000000000..db85d1925a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-67.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-67", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-67.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is an Error Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: new Error() }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-68.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-68.js new file mode 100644 index 0000000000..6c6628bbde --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-68.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-68", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-68.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is an Arguments Object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + var argObj = (function () { return arguments; })(0, 1, 2); + + Object.defineProperty(obj, "property", { enumerable: argObj }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-7.js new file mode 100644 index 0000000000..2d50f6fdbb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-7.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-7", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-7.js", + +description: "Object.defineProperty throws TypeError if getter is not callable but not undefined (String)(8.10.5 step 7.b)", + +test: function testcase() { + var o = {}; + + // dummy getter + var getter = "abc"; + var desc = { get: getter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-70.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-70.js new file mode 100644 index 0000000000..e529b6e54a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-70.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-70", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-70.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is the global object (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: fnGlobalObject() }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-71.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-71.js new file mode 100644 index 0000000000..589b3c0eed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-71.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-71", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-71.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is treated as true when it is a string (value is 'false') (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: "false" }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-72.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-72.js new file mode 100644 index 0000000000..137a0b4e15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-72.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-72", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-72.js", + + description: "Object.defineProperty - value of 'enumerable' property in 'Attributes' is new Boolean(false) which is treated as true value (8.10.5 step 3.b)", + + test: function testcase() { + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "property", { enumerable: new Boolean(false) }); + + for (var prop in obj) { + if (prop === "property") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-73.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-73.js new file mode 100644 index 0000000000..de09d18f21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-73.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-73", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-73.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is present (8.10.5 step 4)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + configurable: false + }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-74.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-74.js new file mode 100644 index 0000000000..11188bc627 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-74.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-3-74", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-74.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is not present (8.10.5 step 4)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { value: 100 }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = (obj.property === 100); + + return beforeDeleted === true && afterDeleted === true; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-75.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-75.js new file mode 100644 index 0000000000..c6c4e709f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-75.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-3-75", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-75.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is own data property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { + configurable: true + }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-76.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-76.js new file mode 100644 index 0000000000..f2fc0e8ada --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-76.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-76", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-76.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is an inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var proto = { + configurable: false + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + return beforeDeleted && afterDeleted && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-77.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-77.js new file mode 100644 index 0000000000..5e2d4732c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-77.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-77", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-77.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is own data property that overrides an inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var proto = { + configurable: false + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + child.configurable = true; + + Object.defineProperty(obj, "property", child); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-78.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-78.js new file mode 100644 index 0000000000..73b9fc27c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-78.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-3-78", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-78.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is own data property that overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + var proto = { }; + + Object.defineProperty(proto, "configurable", { + get: function () { + return false; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "configurable", { + value: true + }); + + Object.defineProperty(obj, "property", child); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-79.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-79.js new file mode 100644 index 0000000000..bb430b7230 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-79.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-79", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-79.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is own accessor property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var attr = {}; + Object.defineProperty(attr, "configurable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-8.js new file mode 100644 index 0000000000..3aa5053fdd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-8.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-8", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-8.js", + +description: "Object.defineProperty throws TypeError if getter is not callable but not undefined (Null)(8.10.5 step 7.b)", + +test: function testcase() { + var o = {}; + + // dummy getter + var getter = null; + var desc = { get: getter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-80.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-80.js new file mode 100644 index 0000000000..a21a884624 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-80.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-3-80", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-80.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-81.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-81.js new file mode 100644 index 0000000000..974b98a676 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-81.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-3-81", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-81.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is own accessor property that overrides an inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + configurable: false + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "configurable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", child); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-82.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-82.js new file mode 100644 index 0000000000..a8b237ded7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-82.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-3-82", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-82.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is own accessor property that overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return false; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "configurable", { + get: function () { + return true; + } + }); + + Object.defineProperty(obj, "property", child); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-83.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-83.js new file mode 100644 index 0000000000..4f3a894ddb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-83.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-3-83", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-83.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is own accessor property without a get function (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var attr = {}; + Object.defineProperty(attr, "configurable", { + set : function () { } + }); + + Object.defineProperty(obj, "property", attr); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-84.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-84.js new file mode 100644 index 0000000000..bce2f6761b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-84.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-3-84", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-84.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is own accessor property(without a get function) that overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "configurable", { + set: function () { } + }); + + Object.defineProperty(obj, "property", child); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-85.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-85.js new file mode 100644 index 0000000000..0ae19b8cf3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-85.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-3-85", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-85.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is an inherited accessor property without a get function (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + Object.defineProperty(proto, "configurable", { + set: function () { } + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(obj, "property", child); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-86-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-86-1.js new file mode 100644 index 0000000000..00a745338c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-86-1.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-3-86-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-86-1.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'configurable' property of prototype object (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + try { + Function.prototype.configurable = true; + var funObj = function (a, b) { + return a + b; + }; + + Object.defineProperty(obj, "property", funObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Function.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-86.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-86.js new file mode 100644 index 0000000000..1b4c7cfc9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-86.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-86", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-86.js", + + description: "Object.defineProperty - 'Attributes' is a Function object which implements its own [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + var funObj = function (a, b) { + return a + b; + }; + + funObj.configurable = true; + + Object.defineProperty(obj, "property", funObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-87-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-87-1.js new file mode 100644 index 0000000000..88b0f0123b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-87-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-87-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-87-1.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + try { + Array.prototype.configurable = true; + var arrObj = [1, 2, 3]; + + Object.defineProperty(obj, "property", arrObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Array.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-87.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-87.js new file mode 100644 index 0000000000..9673203422 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-87.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-87", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-87.js", + + description: "Object.defineProperty - 'Attributes' is an Array object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var arrObj = [1, 2, 3]; + + arrObj.configurable = true; + + Object.defineProperty(obj, "property", arrObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-88-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-88-1.js new file mode 100644 index 0000000000..e50aa5af5e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-88-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-88-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-88-1.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + try { + String.prototype.configurable = true; + var strObj = new String("abc"); + + Object.defineProperty(obj, "property", strObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete String.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-88.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-88.js new file mode 100644 index 0000000000..0938a1c992 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-88.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-88", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-88.js", + + description: "Object.defineProperty - 'Attributes' is a String object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var strObj = new String("abc"); + + strObj.configurable = true; + + Object.defineProperty(obj, "property", strObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-89-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-89-1.js new file mode 100644 index 0000000000..dce2c446c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-89-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-89-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-89-1.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + try { + Boolean.prototype.configurable = true; + var boolObj = new Boolean(true); + + Object.defineProperty(obj, "property", boolObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Boolean.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-89.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-89.js new file mode 100644 index 0000000000..201b426456 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-89.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-89", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-89.js", + + description: "Object.defineProperty - 'Attributes' is a Boolean object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var boolObj = new Boolean(true); + + boolObj.configurable = true; + + Object.defineProperty(obj, "property", boolObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-9.js new file mode 100644 index 0000000000..24806918aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-9.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. + +/* +The abtract operation ToPropertyDescriptor is used to package the +into a property desc. Step 10 of ToPropertyDescriptor throws a TypeError +if the property desc ends up having a mix of accessor and data property elements. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-3-9", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-9.js", + +description: "Object.defineProperty throws TypeError if getter is not callable but not undefined (Object)(8.10.5 step 7.b)", + +test: function testcase() { + var o = {}; + + // dummy getter + var getter = { a: 1 }; + var desc = { get: getter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-90-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-90-1.js new file mode 100644 index 0000000000..bd74343e2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-90-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-90-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-90-1.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + try { + Number.prototype.configurable = true; + var numObj = new Number(-2); + + Object.defineProperty(obj, "property", numObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Number.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-90.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-90.js new file mode 100644 index 0000000000..f846da5997 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-90.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-90", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-90.js", + + description: "Object.defineProperty - 'Attributes' is a Number object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var numObj = new Number(-2); + + numObj.configurable = true; + + Object.defineProperty(obj, "property", numObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-91-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-91-1.js new file mode 100644 index 0000000000..b5aaa37f23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-91-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-91-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-91-1.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.configurable = true; + + Object.defineProperty(obj, "property", Math); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Object.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-91.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-91.js new file mode 100644 index 0000000000..867df4cdf9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-91.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-91", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-91.js", + + description: "Object.defineProperty - 'Attributes' is the Math object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + try { + Math.configurable = true; + + Object.defineProperty(obj, "property", Math); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Math.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-92-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-92-1.js new file mode 100644 index 0000000000..175ff20b17 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-92-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-92-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-92-1.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + try { + Date.prototype.configurable = true; + var dateObj = new Date(); + + Object.defineProperty(obj, "property", dateObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Date.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-92.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-92.js new file mode 100644 index 0000000000..f3a1c7c2aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-92.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-92", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-92.js", + + description: "Object.defineProperty - 'Attributes' is a Date object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var dateObj = new Date(); + + dateObj.configurable = true; + + Object.defineProperty(obj, "property", dateObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-93-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-93-1.js new file mode 100644 index 0000000000..b157c3bbbe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-93-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-93-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-93-1.js", + + description: "Object.defineProperty - 'Attributes' is an RegExp object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + try { + RegExp.prototype.configurable = true; + var regObj = new RegExp(); + + Object.defineProperty(obj, "property", regObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete RegExp.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-93.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-93.js new file mode 100644 index 0000000000..46445608fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-93.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-93", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-93.js", + + description: "Object.defineProperty - 'Attributes' is an RegExp object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var regObj = new RegExp(); + + regObj.configurable = true; + + Object.defineProperty(obj, "property", regObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-94-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-94-1.js new file mode 100644 index 0000000000..03656ab7f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-94-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-94-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-94-1.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.configurable = true; + + Object.defineProperty(obj, "property", JSON); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Object.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-94.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-94.js new file mode 100644 index 0000000000..adca108d3e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-94.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-94", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-94.js", + + description: "Object.defineProperty - 'Attributes' is the JSON object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + try { + JSON.configurable = true; + + Object.defineProperty(obj, "property", JSON); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete JSON.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-95-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-95-1.js new file mode 100644 index 0000000000..a9d4ffada1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-95-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-95-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-95-1.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + try { + Error.prototype.configurable = true; + var errObj = new Error(); + + Object.defineProperty(obj, "property", errObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Error.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-95.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-95.js new file mode 100644 index 0000000000..115b64047d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-95.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-95", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-95.js", + + description: "Object.defineProperty - 'Attributes' is an Error object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = { }; + + var errObj = new Error(); + + errObj.configurable = true; + + Object.defineProperty(obj, "property", errObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-96-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-96-1.js new file mode 100644 index 0000000000..2fbcc082e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-96-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-3-96-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-96-1.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + try { + Object.prototype.configurable = true; + var argObj = (function () { return arguments; })(); + + Object.defineProperty(obj, "property", argObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete Object.prototype.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-96.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-96.js new file mode 100644 index 0000000000..b40e51e44e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-96.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-3-96", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-96.js", + + description: "Object.defineProperty - 'Attributes' is an Arguments object which implements its own [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + var argObj = (function () { return arguments; })(); + argObj.configurable = true; + + Object.defineProperty(obj, "property", argObj); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-98.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-98.js new file mode 100644 index 0000000000..a07b1f6132 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-98.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-3-98", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-98.js", + + description: "Object.defineProperty - 'Attributes' is the global object that uses Object's [[Get]] method to access the 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + var obj = {}; + + try { + fnGlobalObject().configurable = true; + + Object.defineProperty(obj, "property", fnGlobalObject()); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property"); + + return beforeDeleted === true && afterDeleted === false; + } finally { + delete fnGlobalObject().configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-99.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-99.js new file mode 100644 index 0000000000..12831d5063 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-99.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-3-99", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-99.js", + + description: "Object.defineProperty - 'configurable' property in 'Attributes' is undefined (8.10.5 step 4.b)", + + test: function testcase() { + var obj = { }; + + Object.defineProperty(obj, "property", { configurable: undefined }); + + var beforeDeleted = obj.hasOwnProperty("property"); + + delete obj.property; + + var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + return beforeDeleted === true && afterDeleted === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-1.js new file mode 100644 index 0000000000..e1bd1b99a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-1.js @@ -0,0 +1,56 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O passing 'true' for the Throw flag. In this case, step 3 of +[[DefineOwnProperty]] requires that it throw a TypeError exception when +current is undefined and extensible is false. The value of desc does not +matter. +*/ + + +ES5Harness.registerTest( { +id: "15.2.3.6-4-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-1.js", + +description: "Object.defineProperty throws TypeError when adding properties to non-extensible objects(8.12.9 step 3)", + +test: function testcase() { + var o = {}; + Object.preventExtensions(o); + + try { + var desc = { value: 1 }; + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError && + (o.hasOwnProperty("foo") === false)) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-10.js new file mode 100644 index 0000000000..8b6127bda7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-10.js @@ -0,0 +1,67 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. Step 7b of [[DefineOwnProperty]] rejects if +current.[[Enumerable]] and desc.[[Enumerable]] are the boolean negations +of each other. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-10", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-10.js", + +description: "Object.defineProperty throws TypeError when changing [[Enumerable]] from false to true on non-configurable accessor properties", + +test: function testcase() { + var o = {}; + + // create an accessor property; all other attributes default to false. + // dummy getter + var getter = function () { return 1; } + var d1 = { get: getter, enumerable: false, configurable: false }; + Object.defineProperty(o, "foo", d1); + + // now, setting enumerable to true should fail, since [[Configurable]] + // on the original property will be false. + var desc = { get: getter, enumerable: true }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain unchanged. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.get === getter && + d2.enumerable === false && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-100.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-100.js new file mode 100644 index 0000000000..607aa6a152 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-100.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: "15.2.3.6-4-100", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-100.js", + + description: "Object.defineProperty - 'name' and 'desc' are data properties, desc.value and name.value are two different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "foo", { + value: 200 + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-101.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-101.js new file mode 100644 index 0000000000..b8644767b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-101.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: "15.2.3.6-4-101", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-101.js", + + description: "Object.defineProperty - 'name' and 'desc' are data properties, name.value is present and desc.value is undefined (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "foo", { value: undefined }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-102.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-102.js new file mode 100644 index 0000000000..d3be686e7d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-102.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: "15.2.3.6-4-102", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-102.js", + + description: "Object.defineProperty - 'name' and 'desc' are data properties, desc.value is present and name.value is undefined (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + obj.foo = undefined; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "foo", { value: 100 }); + return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-103.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-103.js new file mode 100644 index 0000000000..a96ff1f773 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-103.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-103", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-103.js", + + description: "Object.defineProperty - 'name' and 'desc' are data properties, name.writable and desc.writable are different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + writable: false, configurable: true + }); + + Object.defineProperty(obj, "foo", { + writable: true + }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-104.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-104.js new file mode 100644 index 0000000000..b917c24906 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-104.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-104", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-104.js", + + description: "Object.defineProperty - 'name' and 'desc' are data properties, name.enumerable and desc.enumerable are different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: true + }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-105.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-105.js new file mode 100644 index 0000000000..010f048ce6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-105.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-105", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-105.js", + + description: "Object.defineProperty - 'name' and 'desc' are data properties, name.configurable = true and desc.configurable = false (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 200, + enumerable: true, + writable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-106.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-106.js new file mode 100644 index 0000000000..e3f7293d07 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-106.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-106", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-106.js", + + description: "Object.defineProperty - 'name' and 'desc' are data properties, several attributes values of name and desc are different (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 100, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + value: 200, + writable: false, + enumerable: false + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 200, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-107.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-107.js new file mode 100644 index 0000000000..cddb1cb7ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-107.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-107", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-107.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, both desc.[[Get]] and name.[[Get]] are two different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return 10; + } + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + configurable: true + }); + + function getFunc2() { + return 20; + } + + Object.defineProperty(obj, "foo", { + get: getFunc2 + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-108.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-108.js new file mode 100644 index 0000000000..60cde948c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-108.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-108", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-108.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, name.[[Get]] is present and desc.[[Get]] is undefined (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return 10; + } + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + set: setFunc, + get: undefined + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-109.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-109.js new file mode 100644 index 0000000000..24bd927698 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-109.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: "15.2.3.6-4-109", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-109.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, name.[[Get]] is undefined and desc.[[Get]] is function (8.12.9 step 12)", + + test: function testcase() { + var obj = {}; + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: setFunc, + get: undefined, + enumerable: true, + configurable: true + }); + + function getFunc() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: getFunc + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-11.js new file mode 100644 index 0000000000..3ffba3ba7c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-11.js @@ -0,0 +1,67 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. Step 7b of [[DefineOwnProperty]] rejects if +current.[[Enumerable]] and desc.[[Enumerable]] are the boolean negations +of each other. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-11", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-11.js", + +description: "Object.defineProperty throws TypeError when changing [[Enumerable]] from true to false on non-configurable accessor properties", + +test: function testcase() { + var o = {}; + + // create an accessor property; all other attributes default to false. + // dummy getter + var getter = function () { return 1; } + var d1 = { get: getter, enumerable: true, configurable: false }; + Object.defineProperty(o, "foo", d1); + + // now, setting enumerable to true should fail, since [[Configurable]] + // on the original property will be false. + var desc = { get: getter, enumerable: false }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain unchanged. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.get === getter && + d2.enumerable === true && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-110.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-110.js new file mode 100644 index 0000000000..7a6d7b38af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-110.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: "15.2.3.6-4-110", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-110.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, both desc.[[Set]] and name.[[Set]] are two different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function setFunc1() { + return 10; + } + + Object.defineProperty(obj, "foo", { + set: setFunc1, + enumerable: true, + configurable: true + }); + + function setFunc2(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: setFunc2 + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc2, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-111.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-111.js new file mode 100644 index 0000000000..7ff5ee7d8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-111.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-111", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-111.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, name.[[Set]] is present and desc.[[Set]] is undefined (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return 10; + } + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + set: undefined, + get: getFunc + }); + + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + return obj.hasOwnProperty("foo") && typeof (desc.set) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-112.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-112.js new file mode 100644 index 0000000000..0d524c2da2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-112.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-112", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-112.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, name.[[Set]] is undefined and desc.[[Set]] is function (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return 10; + } + + Object.defineProperty(obj, "foo", { + set: undefined, + get: getFunc, + enumerable: true, + configurable: true + }); + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: setFunc + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-113.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-113.js new file mode 100644 index 0000000000..270de8c3af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-113.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-113", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-113.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, name.enumerable and desc.enumerable are different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: getFunc, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + get: getFunc, + enumerable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-114.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-114.js new file mode 100644 index 0000000000..45a80e68c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-114.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-114", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-114.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, name.configurable = true and desc.configurable = false (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + function getFunc() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + get: getFunc, + configurable: false + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-115.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-115.js new file mode 100644 index 0000000000..dd595be06f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-115.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-115", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-115.js", + + description: "Object.defineProperty - 'name' and 'desc' are accessor properties, several attributes values of 'name' and 'desc' are different (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function getFunc1() { + return 10; + } + function setFunc1() {} + + Object.defineProperty(obj, "foo", { + get: getFunc1, + set: setFunc1, + enumerable: true, + configurable: true + }); + + function getFunc2() { + return 20; + } + function setFunc2(value) { + obj.setVerifyHelpProp = value; + } + Object.defineProperty(obj, "foo", { + get: getFunc2, + set: setFunc2, + enumerable: false + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc2, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-116.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-116.js new file mode 100644 index 0000000000..1bdc3b77e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-116.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-116", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-116.js", + + description: "Object.defineProperty - 'O' is an Array, test the length property of 'O' is own data property (15.4.5.1 step 1)", + + test: function testcase() { + + var arrObj = [0, 1]; + Object.defineProperty(arrObj, "1", { + value: 1, + configurable: false + }); + try { + Object.defineProperty(arrObj, "length", { value: 1 }); + return false; + } catch (e) { + var desc = Object.getOwnPropertyDescriptor(arrObj, "length"); + + return Object.hasOwnProperty.call(arrObj, "length") && desc.value === 2 && + desc.writable === true && desc.configurable === false && desc.enumerable === false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-117.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-117.js new file mode 100644 index 0000000000..c51830c467 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-117.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-117", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-117.js", + + description: "Object.defineProperty - 'O' is an Array, test the length property of 'O' is own data property that overrides an inherited data property (15.4.5.1 step 1)", + + test: function testcase() { + var arrObj = [0, 1, 2]; + var arrProtoLen; + + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + + + Object.defineProperty(arrObj, "2", { + configurable: false + }); + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 3 && Array.prototype.length === 0; + } finally { + Array.prototype.length = arrProtoLen; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-118.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-118.js new file mode 100644 index 0000000000..f7b69204ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-118.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-118", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-118.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is absent, test every field in 'desc' is absent (15.4.5.1 step 3.a.i)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "length", {}); + + var verifyValue = false; + if (arrObj.length === 0) { + verifyValue = true; + } + + arrObj.length = 2; + var verifyWritable = arrObj.length === 2; + + var verifyEnumerable = false; + for (var p in arrObj) { + if (p === "length" && arrObj.hasOwnProperty(p)) { + verifyEnumerable = true; + } + } + + delete arrObj.length; + var verifyConfigurable = arrObj.hasOwnProperty("length"); + + return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-119.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-119.js new file mode 100644 index 0000000000..10dc69ad36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-119.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.6-4-119", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-119.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is absent, test every field in 'desc' is same with corresponding attribute value of the length property in 'O' (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arrObj = []; + Object.defineProperty(arrObj, "length", { + writable: true, + enumerable: false, + configurable: false + }); + + var verifyValue = false; + if (arrObj.length === 0) { + verifyValue = true; + } + + arrObj.length = 2; + var verifyWritable = arrObj.length === 2 ? true : false; + + var verifyEnumerable = false; + for (var p in arrObj) { + if (p === "length" && arrObj.hasOwnProperty(p)) { + verifyEnumerable = true; + } + } + + delete arrObj.length; + var verifyConfigurable = arrObj.hasOwnProperty("length"); + + return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-12.js new file mode 100644 index 0000000000..fe95aa6bc6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-12.js @@ -0,0 +1,68 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For non-configurable properties, step 9a of +[[DefineOwnProperty]] rejects changing the kind of a property. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-12", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-12.js", + +description: "Object.defineProperty throws TypeError when changing non-configurable data properties to accessor properties", + +test: function testcase() { + var o = {}; + + // create a data valued property; all other attributes default to false. + var d1 = { value: 101, configurable: false }; + Object.defineProperty(o, "foo", d1); + + // changing "foo" to be an accessor should fail, since [[Configurable]] + // on the original property will be false. + + // dummy getter + var getter = function () { return 1; } + + var desc = { get: getter }; + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain a data valued property. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.value === 101 && + d2.writable === false && + d2.enumerable === false && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-120.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-120.js new file mode 100644 index 0000000000..cabe3e3ee8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-120.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-120", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-120.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is absent, test TypeError is thrown when updating the [[Configurable]] attribute of the length property from false to true (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arrObj = []; + try { + Object.defineProperty(arrObj, "length", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-121.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-121.js new file mode 100644 index 0000000000..27d2b4b461 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-121.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-121", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-121.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is absent, test TypeError is thrown when updating the [[Enumerable]] attribute of the length property from false to true (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arrObj = []; + try { + Object.defineProperty(arrObj, "length", { + enumerable: true + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-122.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-122.js new file mode 100644 index 0000000000..d85697abb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-122.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-122", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-122.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test TypeError is thrown when 'desc' is accessor descriptor (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arrObj = []; + try { + Object.defineProperty(arrObj, "length", { + get: function () { + return 2; + } + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-123.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-123.js new file mode 100644 index 0000000000..b0fd576995 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-123.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-123", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-123.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is absent, test TypeError is thrown when updating the [[Writable]] attribute of the length property from false to true (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arrObj = []; + try { + Object.defineProperty(arrObj, "length", { + writable: false + }); + Object.defineProperty(arrObj, "length", { + writable: true + }); + + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-124.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-124.js new file mode 100644 index 0000000000..8ccb6de932 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-124.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-124", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-124.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is absent, test updating the [[Writable]] attribute of the length property from true to false (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + writable: false + }); + return dataPropertyAttributesAreCorrect(arrObj, "length", 0, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-125.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-125.js new file mode 100644 index 0000000000..62aa121029 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-125.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-125", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-125.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test that RangeError exception is thrown when [[Value]] field of 'desc' is undefined (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: undefined + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-126.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-126.js new file mode 100644 index 0000000000..00daff91d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-126.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-126", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-126.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is null (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: null + }); + return arrObj.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-127.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-127.js new file mode 100644 index 0000000000..8d773cf1b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-127.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-127", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-127.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a boolean with value false (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: false + }); + return arrObj.length === 0 && !arrObj.hasOwnProperty("0") && !arrObj.hasOwnProperty("1"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-128.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-128.js new file mode 100644 index 0000000000..61a40fbd0b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-128.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-128", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-128.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a boolean with value true (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: true + }); + return arrObj.length === 1; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-129.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-129.js new file mode 100644 index 0000000000..dd05d3fb47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-129.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-129", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-129.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is not thrown when the [[Value]] field of 'desc' is 0 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: 0 + }); + return arrObj.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-13.js new file mode 100644 index 0000000000..8ff3ffef0a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-13.js @@ -0,0 +1,66 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For non-configurable properties, step 9a of +[[DefineOwnProperty]] rejects changing the kind of a property. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-13", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-13.js", + +description: "Object.defineProperty throws TypeError when changing non-configurable accessor properties to data properties", + +test: function testcase() { + var o = {}; + + // create an accessor property; all other attributes default to false. + + // dummy getter + var getter = function () { return 1; } + var d1 = { get: getter, configurable: false }; + Object.defineProperty(o, "foo", d1); + + // changing "foo" to be a data property should fail, since [[Configurable]] + // on the original property will be false. + var desc = { value: 101 }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain an accessor property. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.get === getter && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-130.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-130.js new file mode 100644 index 0000000000..b58e2855e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-130.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-130", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-130.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is not thrown when the [[Value]] field of 'desc' is +0 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: +0 + }); + return arrObj.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-131.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-131.js new file mode 100644 index 0000000000..16691abdd3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-131.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-131", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-131.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is not thrown when the [[Value]] field of 'desc' is -0 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: -0 + }); + return arrObj.length === 0; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-132.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-132.js new file mode 100644 index 0000000000..2f59fa6e3a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-132.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-132", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-132.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is not thrown when the [[Value]] field of 'desc' is a positive number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: 12 + }); + return arrObj.length === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-133.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-133.js new file mode 100644 index 0000000000..2be91da1a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-133.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-133", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-133.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is a negative number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: -9 + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-134.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-134.js new file mode 100644 index 0000000000..773118a0f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-134.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-134", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-134.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is +Infinity (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: +Infinity + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-135.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-135.js new file mode 100644 index 0000000000..e43bb1affb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-135.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-135", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-135.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is -Infinity (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: -Infinity + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-136.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-136.js new file mode 100644 index 0000000000..265bc26e51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-136.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-136", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-136.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is NaN (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: NaN + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-137.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-137.js new file mode 100644 index 0000000000..c5767b62fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-137.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-137", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-137.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is not thrown when the [[Value]] field of 'desc' is a string containing a positive number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: "2" + }); + return arrObj.length === 2; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-138.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-138.js new file mode 100644 index 0000000000..6d3d969a62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-138.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-138", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-138.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is a string containing a negative number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: "-42" + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-139.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-139.js new file mode 100644 index 0000000000..d820b4bf25 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-139.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-139", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-139.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is a string containing a decimal number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: "200.59" + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-14.js new file mode 100644 index 0000000000..5aad866a3e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-14.js @@ -0,0 +1,63 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For configurable properties, step 9b of +[[DefineOwnProperty]] permits changing the kind of a property. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-14", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-14.js", + +description: "Object.defineProperty permits changing data property to accessor property for configurable properties", + +test: function testcase() { + var o = {}; + + // create a data property. In this case, + // [[Enumerable]] and [[Configurable]] are true + o["foo"] = 101; + + // changing "foo" to be an accessor should succeed, since [[Configurable]] + // on the original property will be true. Existing values of [[Configurable]] + // and [[Enumerable]] need to be preserved and the rest need to be set to + // their default values + + // dummy getter + var getter = function () { return 1; } + var d1 = { get: getter }; + Object.defineProperty(o, "foo", d1); + + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + + if (d2.get === getter && + d2.enumerable === true && + d2.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-140.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-140.js new file mode 100644 index 0000000000..d79a24dfe7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-140.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-140", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-140.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is a string containing +Infinity (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: "+Infinity" + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-141.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-141.js new file mode 100644 index 0000000000..750f11ce95 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-141.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-141", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-141.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is a string containing -Infinity (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: "-Infinity" + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-142.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-142.js new file mode 100644 index 0000000000..8c4eaba415 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-142.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-142", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-142.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing an exponential number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: "2E3" + }); + return arrObj.length === 2E3; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-143.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-143.js new file mode 100644 index 0000000000..40e9cdd049 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-143.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-143", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-143.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing a hex number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: "0x00B" + }); + return arrObj.length === 0x00B; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-144.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-144.js new file mode 100644 index 0000000000..8de2533db5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-144.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-144", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-144.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing a number with leading zeros (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: "0002.0" + }); + return arrObj.length === 2; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-145.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-145.js new file mode 100644 index 0000000000..d1f75d65b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-145.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-145", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-145.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError exception is thrown when the [[Value]] field of 'desc' is a string which doesn't convert to a number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: "two" + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-146.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-146.js new file mode 100644 index 0000000000..399a309add --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-146.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-146", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-146.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is an object which has an own toString method (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: { + toString: function () { + return '2'; + } + } + }); + return arrObj.length === 2; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-147.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-147.js new file mode 100644 index 0000000000..38e374c820 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-147.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-147", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-147.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is an Object which has an own valueOf method (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: { + valueOf: function () { + return 2; + } + } + }); + return arrObj.length === 2; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-148.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-148.js new file mode 100644 index 0000000000..d8370aed14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-148.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-148", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-148.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is an Object which has an own valueOf method that returns an object and toString method that returns a string (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + var toStringAccessed = false; + var valueOfAccessed = false; + + Object.defineProperty(arrObj, "length", { + value: { + toString: function () { + toStringAccessed = true; + return '2'; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + } + }); + return arrObj.length === 2 && toStringAccessed && valueOfAccessed; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-149.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-149.js new file mode 100644 index 0000000000..2bb973be88 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-149.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-149", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-149.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is an Object which has an own toString and valueOf method (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + var toStringAccessed = false; + var valueOfAccessed = false; + + Object.defineProperty(arrObj, "length", { + value: { + toString: function () { + toStringAccessed = true; + return '2'; + }, + + valueOf: function () { + valueOfAccessed = true; + return 3; + } + } + }); + return arrObj.length === 3 && !toStringAccessed && valueOfAccessed; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-15.js new file mode 100644 index 0000000000..9356813e92 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-15.js @@ -0,0 +1,62 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For configurable properties, step 9c of +[[DefineOwnProperty]] permits changing the kind of a property. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-15", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-15.js", + +description: "Object.defineProperty permits changing accessor property to data property for configurable properties", + +test: function testcase() { + var o = {}; + + // define an accessor property + // dummy getter + var getter = function () { return 1; } + var d1 = { get: getter, configurable: true }; + Object.defineProperty(o, "foo", d1); + + // changing "foo" to be a data valued property should succeed, since + // [[Configurable]] on the original property will be true. Existing + // values of [[Configurable]] and [[Enumerable]] need to be preserved + // and the rest need to be set to their default values. + var desc = { value: 101 }; + Object.defineProperty(o, "foo", desc); + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + + if (d2.value === 101 && + d2.writable === false && + d2.enumerable === false && + d2.configurable === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-150.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-150.js new file mode 100644 index 0000000000..23a8de6950 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-150.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-150", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-150.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test TypeError is thrown when the [[Value]] field of 'desc' is an Object that both toString and valueOf wouldn't return primitive value (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + var toStringAccessed = false; + var valueOfAccessed = false; + + try { + Object.defineProperty(arrObj, "length", { + value: { + toString: function () { + toStringAccessed = true; + return {}; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + } + }); + return false; + + } catch (e) { + return e instanceof TypeError && toStringAccessed && valueOfAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-151.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-151.js new file mode 100644 index 0000000000..38312929ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-151.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-151", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-151.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', and the [[Value]] field of 'desc' is an Object with an own toString method and an inherited valueOf method (15.4.5.1 step 3.c), test that the inherited valueOf method is used", + + test: function testcase() { + + var arrObj = []; + var toStringAccessed = false; + var valueOfAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + child.toString = function () { + toStringAccessed = true; + return 3; + }; + + Object.defineProperty(arrObj, "length", { + value: child + }); + return arrObj.length === 2 && !toStringAccessed && valueOfAccessed; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-152.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-152.js new file mode 100644 index 0000000000..f5feb031ce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-152.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-152", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-152.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is a positive non-integer values (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: 123.5 + }); + + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-153.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-153.js new file mode 100644 index 0000000000..6ddc866771 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-153.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-153", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-153.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length prosperty of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is a negative non-integer values (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: -4294967294.5 + }); + + return false; + } catch (e) { + return e instanceof RangeError; + } + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-154.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-154.js new file mode 100644 index 0000000000..a2f3f88758 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-154.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-154", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-154.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is boundary value 2^32 - 2 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: 4294967294 + }); + + return arrObj.length === 4294967294; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-155.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-155.js new file mode 100644 index 0000000000..1ab4f32fac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-155.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-155", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-155.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is boundary value 2^32 - 1 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + value: 4294967295 + }); + + return arrObj.length === 4294967295; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-156.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-156.js new file mode 100644 index 0000000000..5bcfea32a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-156.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-156", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-156.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is boundary value 2^32 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: 4294967296 + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-157.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-157.js new file mode 100644 index 0000000000..e332d66f64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-157.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-157", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-157.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is boundary value 2^32 + 1 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arrObj = []; + + try { + Object.defineProperty(arrObj, "length", { + value: 4294967297 + }); + return false; + } catch (e) { + return e instanceof RangeError; + } + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-159.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-159.js new file mode 100644 index 0000000000..6f9c2c41eb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-159.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-159", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-159.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', set the [[Value]] field of 'desc' to a value greater than the existing value of length (15.4.5.1 step 3.f)", + + test: function testcase() { + + var arrObj = [0, , 2]; + + Object.defineProperty(arrObj, "length", { + value: 5 + }); + + return arrObj.length === 5 && arrObj[0] === 0 && + !arrObj.hasOwnProperty("1") && arrObj[2] === 2 && + !arrObj.hasOwnProperty("4"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-16.js new file mode 100644 index 0000000000..20ca34e67e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-16.js @@ -0,0 +1,65 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For non-configurable properties, step 10.a.i +of [[DefineOwnProperty]] rejects if relaxing the [[Writable]] attribute. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-16", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-16.js", + +description: "Object.defineProperty throws TypeError when relaxing [[Writable]] on non-configurable data properties", + +test: function testcase() { + var o = {}; + + // create a data valued property; all other attributes default to false. + var d1 = { value: 101 }; + Object.defineProperty(o, "foo", d1); + + // now, relaxing [[Writable]] on "foo" should fail, since both + // [[Configurable]] and [[Writable]] on the original property will be false. + var desc = { value: 101, writable: true }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain unchanged. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.value === 101 && + d2.writable === false && + d2.enumerable === false && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-160.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-160.js new file mode 100644 index 0000000000..8a08d2f263 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-160.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-160", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-160.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', set the [[Value]] field of 'desc' to a value equal to the existing value of length (15.4.5.1 step 3.f)", + + test: function testcase() { + + var arrObj = [0, , 2]; + + Object.defineProperty(arrObj, "length", { + value: 3 + }); + + return arrObj.length === 3 && arrObj[0] === 0 && !arrObj.hasOwnProperty("1") && arrObj[2] === 2; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-161.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-161.js new file mode 100644 index 0000000000..74a75a0ca6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-161.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-161", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-161.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', set the [[Value]] field of 'desc' to a value lesser than the existing value of length and test that indexes beyond the new length are deleted(15.4.5.1 step 3.f)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + return arrObj.length === 1 && !arrObj.hasOwnProperty("1"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-162.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-162.js new file mode 100644 index 0000000000..ff590b5a87 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-162.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-162", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-162.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is greater than value of the length property, test TypeError is thrown when the length property is not writable (15.4.5.1 step 3.f.i)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + writable: false + }); + + try { + Object.defineProperty(arrObj, "length", { + value: 12 + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-163.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-163.js new file mode 100644 index 0000000000..468f71bcca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-163.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-163", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-163.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' equals to value of the length property, test no TypeError is thrown when the length property is not writable (15.4.5.1 step 3.f.i)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "length", { + writable: false + }); + + try { + Object.defineProperty(arrObj, "length", { + value: 0 + }); + return true; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-164.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-164.js new file mode 100644 index 0000000000..b07e647bc7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-164.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-164", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-164.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test TypeError is thrown when the [[Writable]] attribute of the length property is false (15.4.5.1 step 3.g)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + writable: false + }); + + try { + Object.defineProperty(arrObj, "length", { + value: 0 + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-165.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-165.js new file mode 100644 index 0000000000..de0742537e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-165.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-165", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-165.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to true after deleting properties with large index named if the [[Writable]] field of 'desc' is absent (15.4.5.1 step 3.h)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + + var indexDeleted = !arrObj.hasOwnProperty("1"); + + arrObj.length = 10; + + return indexDeleted && arrObj.length === 10; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-166.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-166.js new file mode 100644 index 0000000000..e3412a495b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-166.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-166", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-166.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to true after deleting properties with large index named if the [[Writable]] field of 'desc' is true (15.4.5.1 step 3.h)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: 1, + writable: true + }); + + var indexDeleted = !arrObj.hasOwnProperty("1"); + + arrObj.length = 10; + + return indexDeleted && arrObj.length === 10; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-167.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-167.js new file mode 100644 index 0000000000..4c1bf9b6de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-167.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-167", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-167.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to false after deleting properties with large index named if the [[Writable]] field of 'desc' is false (15.4.5.1 step 3.i.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: 1, + writable: false + }); + + var indexDeleted = !arrObj.hasOwnProperty("1"); + + arrObj.length = 10; + + return indexDeleted && arrObj.length === 1; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-168.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-168.js new file mode 100644 index 0000000000..ab759913f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-168.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-168", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-168.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', whose writable attribute is being changed to false and the [[Value]] field of 'desc' is less than value of the length property and also lesser than an index of the array which is set to configurable:false, test that new length is set to a value greater than the non-deletable index by 1, writable attribute of length is set to false and TypeError exception is thrown (15.4.5.1 step 3.i.iii)", + + test: function testcase() { + + var arrObj = [0, 1, 2]; + + try { + Object.defineProperty(arrObj, "1", { + configurable: false + }); + + Object.defineProperty(arrObj, "length", { + value: 0, + writable: false + }); + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 2; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-169.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-169.js new file mode 100644 index 0000000000..489f37de05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-169.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-169", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-169.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property and also lesser than an index of the array which is set to configurable: false, test that new length is set to a value greater than the non-deletable index by 1, and TypeError is thrown (15.4.5.1 step 3.l.i)", + + test: function testcase() { + + var arrObj = [0, 1, 2]; + + Object.defineProperty(arrObj, "1", { + configurable: false + }); + + Object.defineProperty(arrObj, "2", { + configurable: true + }); + + try { + Object.defineProperty(arrObj, "length", { + value: 1 + }); + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 2 && !arrObj.hasOwnProperty("2"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-17.js new file mode 100644 index 0000000000..2ee3d97453 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-17.js @@ -0,0 +1,66 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For non-configurable properties, step 10.a.ii.1 +of [[DefineOwnProperty]] rejects changing the value of non-writable properties. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-17", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-17.js", + +description: "Object.defineProperty throws TypeError when changing value of non-writable non-configurable data properties", + +test: function testcase() { + var o = {}; + + // create a data valued property; all other attributes default to false. + var d1 = { value: 101 }; + Object.defineProperty(o, "foo", d1); + + // now, trying to change the value of "foo" should fail, since both + // [[Configurable]] and [[Writable]] on the original property will be false. + var desc = { value: 102 }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain unchanged. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + + if (d2.value === 101 && + d2.writable === false && + d2.enumerable === false && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-170.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-170.js new file mode 100644 index 0000000000..96d6fc24ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-170.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-170", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-170.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property and also lesser than an index of the array which is set to configurable: false, test that new length is set to a value greater than the non-deletable index by 1, writable attribute of length is set to false and TypeError exception is thrown (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + + try { + Object.defineProperty(arrObj, "1", { + configurable: false + }); + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 2 && arrObj.hasOwnProperty("1"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-171.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-171.js new file mode 100644 index 0000000000..2bfeffc734 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-171.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-171", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-171.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of an inherited data property with large index named in 'O' can't stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + try { + Array.prototype[1] = 2; // Not setting the [[Configurable]] attribute of property "1" to false here, since Array.prototype is a global object, and non-configurbale property can't revert to configurable + Object.defineProperty(arrObj, "length", { + value: 1 + }); + return arrObj.length === 1 && !arrObj.hasOwnProperty("1"); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-172.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-172.js new file mode 100644 index 0000000000..e368e93165 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-172.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-172", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-172.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own data property with large index named in 'O' that overrides an inherited data property can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + try { + Object.defineProperty(arrObj, "1", { + configurable: false + }); + + Array.prototype[1] = 2; + Object.defineProperty(arrObj, "length", { + value: 1 + }); + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 2 && arrObj.hasOwnProperty("1"); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-173.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-173.js new file mode 100644 index 0000000000..4ef8c99d09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-173.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-173", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-173.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own data property with large index named in 'O' that overrides an inherited accessor property can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + try { + Object.defineProperty(arrObj, "1", { + configurable: false + }); + + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 2; + }, + configurable: true + }); + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 2 && arrObj.hasOwnProperty("1"); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-174.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-174.js new file mode 100644 index 0000000000..02e666cd61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-174.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-174", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-174.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own accessor property with large index named in 'O' can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + + try { + Object.defineProperty(arrObj, "1", { + get: function () { + return 1; + }, + configurable: false + }); + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 2 && arrObj.hasOwnProperty("1"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-175.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-175.js new file mode 100644 index 0000000000..f6d65a647f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-175.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: "15.2.3.6-4-175", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-175.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of an inherited accessor property with large index named in 'O' can't stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 1; + }, + configurable: true // Not setting the [[Configurable]] attribute of property "1" to false here, since Array.prototype is a global object, and non-configurbale property can't revert to configurable + }); + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + + return arrObj.length === 1 && !arrObj.hasOwnProperty("1"); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-176.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-176.js new file mode 100644 index 0000000000..ca12f3dcb1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-176.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-176", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-176.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own accessor property with large index named in 'O' that overrides an inherited data property can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + try { + Object.defineProperty(arrObj, "1", { + get: function () { + return 2; + }, + configurable: false + }); + + Array.prototype[1] = 2; + Object.defineProperty(arrObj, "length", { + value: 1 + }); + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 2 && arrObj.hasOwnProperty("1"); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-177.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-177.js new file mode 100644 index 0000000000..87d8144723 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-177.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-177", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-177.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own accessor property with large index named in 'O' that overrides an inherited accessor property can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + try { + Object.defineProperty(arrObj, "1", { + get: function () { + return 1; + }, + configurable: false + }); + + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 2; + }, + configurable: true + }); + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + return false; + } catch (e) { + return e instanceof TypeError && arrObj.length === 2 && arrObj.hasOwnProperty("1"); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-178.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-178.js new file mode 100644 index 0000000000..19430b50a7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-178.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-178", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-178.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the configurable large index named property of 'O' is deleted (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: 1 + }); + + return !arrObj.hasOwnProperty("1"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-179-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-179-1.js new file mode 100644 index 0000000000..fad0371406 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-179-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-179-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-179-1.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is greater than value of the length property, test value of the length property is same as [[Value]] (15.4.5.1 step 3.l.iii.1)", + + test: function testcase() { + var arrObj = [0, 1, 2, 3]; + + Object.defineProperty(arrObj, "1", { + configurable: false + }); + + Object.defineProperty(arrObj, "length", { + value: 3 + }); + + return arrObj.length === 3; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-18.js new file mode 100644 index 0000000000..79f9082f31 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-18.js @@ -0,0 +1,67 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For non-configurable properties, step 11.a.i +of [[DefineOwnProperty]] rejects changing the setter if present. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-18", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-18.js", + +description: "Object.defineProperty throws TypeError when changing setter of non-configurable accessor properties(8.12.9 step 11.a.i)", + +test: function testcase() { + var o = {}; + + // create an accessor property; all other attributes default to false. + // dummy getter + var getter = function () { return 1;} + var d1 = { get: getter }; + Object.defineProperty(o, "foo", d1); + + // now, trying to change the setter should fail, since [[Configurable]] + // on the original property will be false. + var setter = function (x) {}; + var desc = { set: setter }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain unchanged. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.get === getter && + d2.configurable === false && + d2.enumerable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-181.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-181.js new file mode 100644 index 0000000000..22d327bcbe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-181.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-181", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-181.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to false at last when the [[Writable]] field of 'desc' is false and 'O' doesn't contain non-configurable large index named property (15.4.5.1 step 3.m)", + + test: function testcase() { + + var arrObj = [0, 1]; + + Object.defineProperty(arrObj, "length", { + value: 0, + writable: false + }); + + arrObj.length = 10; //try to overwrite length value of arr + return !arrObj.hasOwnProperty("1") && arrObj.length === 0; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-182.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-182.js new file mode 100644 index 0000000000..5320c604d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-182.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-182", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-182.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is available String values that convert to numbers (15.4.5.1 step 4.a)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "0", { + value: 12 + }); + + return arrObj[0] === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-183.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-183.js new file mode 100644 index 0000000000..37a5d85daa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-183.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: "15.2.3.6-4-183", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-183.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is boundary value 2^32 - 2 (15.4.5.1 step 4.a)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, 4294967294, { + value: 100 + }); + + return arrObj.hasOwnProperty("4294967294") && arrObj.length === 4294967295 && arrObj[4294967294] === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-184.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-184.js new file mode 100644 index 0000000000..35729db7df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-184.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: "15.2.3.6-4-184", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-184.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is boundary value 2^32 - 1 (15.4.5.1 step 4.a)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, 4294967295, { + value: 100 + }); + + return arrObj.hasOwnProperty("4294967295") && arrObj.length === 0 && arrObj[4294967295] === 100; ; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-185.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-185.js new file mode 100644 index 0000000000..a943525f1d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-185.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: "15.2.3.6-4-185", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-185.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is boundary value 2^32 (15.4.5.1 step 4.a)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, 4294967296, { + value: 100 + }); + + return arrObj.hasOwnProperty("4294967296") && arrObj.length === 0 && arrObj[4294967296] === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-186.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-186.js new file mode 100644 index 0000000000..a032b372d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-186.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: "15.2.3.6-4-186", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-186.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is boundary value 2^32 + 1 (15.4.5.1 step 4.a)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, 4294967297, { + value: 100 + }); + + return arrObj.hasOwnProperty("4294967297") && arrObj.length === 0 && arrObj[4294967297] === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-187.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-187.js new file mode 100644 index 0000000000..cac7efd050 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-187.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-187", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-187.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, test TypeError is not thrown if the [[Writable]] attribute of the length property in 'O' is false and value of 'name' is less than value of the length property (15.4.5.1 step 4.b)", + + test: function testcase() { + var arrObj = [1, 2, 3]; + + Object.defineProperty(arrObj, "length", { + writable: false + }); + + try { + Object.defineProperty(arrObj, 1, { + value: "abc" + }); + + return true; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-188.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-188.js new file mode 100644 index 0000000000..5765ea988d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-188.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-188", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-188.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, test TypeError is thrown if the [[Writable]] attribute of the length property in 'O' is false and value of 'name' equals to value of the length property (15.4.5.1 step 4.b)", + + test: function testcase() { + var arrObj = [1, 2, 3]; + + Object.defineProperty(arrObj, "length", { + writable: false + }); + + try { + Object.defineProperty(arrObj, 3, { + value: "abc" + }); + + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-189.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-189.js new file mode 100644 index 0000000000..c7e9e42403 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-189.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-189", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-189.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, test TypeError is thrown if the [[Writable]] attribute of the length property in 'O' is false and value of 'name' is greater than value of the length property (15.4.5.1 step 4.b)", + + test: function testcase() { + var arrObj = [1, 2, 3]; + + Object.defineProperty(arrObj, "length", { + writable: false + }); + + try { + Object.defineProperty(arrObj, 4, { + value: "abc" + }); + + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-19.js new file mode 100644 index 0000000000..4069a632d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-19.js @@ -0,0 +1,61 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For non-configurable properties, step 11.a.i +of [[DefineOwnProperty]] permits setting a setter (if absent). +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-19", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-19.js", + +description: "Object.defineProperty permits setting a setter (if absent) of non-configurable accessor properties(8.12.9 step 10.a.ii.1)", + +test: function testcase() { + var o = {}; + + // create an accessor property; all other attributes default to false. + // dummy getter + var getter = function () { return 1;} + var d1 = { get: getter }; + Object.defineProperty(o, "foo", d1); + + // now, trying to set the setter should succeed even though [[Configurable]] + // on the original property will be false. + var desc = { set: undefined }; + Object.defineProperty(o, "foo", desc); + + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + + if (d2.get === getter && + d2.set === undefined && + d2.configurable === false && + d2.enumerable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-190.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-190.js new file mode 100644 index 0000000000..f6f901cced --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-190.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-190", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-190.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is own data property, test TypeError is thrown on updating the configurable attribute from false to true (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + Object.defineProperty(arrObj, 0, { + value: "ownDataProperty", + configurable: false + }); + + try { + Object.defineProperty(arrObj, 0, { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arrObj, "0", "ownDataProperty", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-191.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-191.js new file mode 100644 index 0000000000..825efc2f58 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-191.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-191", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-191.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is an inherited data property, test that defining own index named property is successful (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 11, + configurable: true + }); + + var arrObj = []; + + Object.defineProperty(arrObj, "0", { + configurable: false + }); + return arrObj.hasOwnProperty("0") && Array.prototype[0] === 11 && typeof arrObj[0] === "undefined"; + } finally { + delete Array.prototype[0]; + } + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-192.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-192.js new file mode 100644 index 0000000000..ce09be936e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-192.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: "15.2.3.6-4-192", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-192.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is own data property that overrides an inherited data property, test TypeError is thrown on updating the [[Configurable]] attribute from false to true (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 11, + configurable: true + }); + + var arrObj = []; + Object.defineProperty(arrObj, "0", { + value: 12, + configurable: false + }); + + Object.defineProperty(arrObj, "0", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && Array.prototype[0] === 11 && arrObj[0] === 12; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-193.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-193.js new file mode 100644 index 0000000000..b3b79beedc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-193.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-193", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-193.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is own data property that overrides an inherited accessor property, test TypeError is thrown when update the [[Configurable]] attribute to true and value of [[Configurable]] attribute of original is false (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + var arrObj = []; + Object.defineProperty(arrObj, "0", { + value: 12, + configurable: false + }); + + Object.defineProperty(arrObj, "0", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && Array.prototype[0] === 11 && arrObj[0] === 12; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-194.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-194.js new file mode 100644 index 0000000000..86f7375fe7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-194.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-194", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-194.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is own accessor property, test TypeError is thrown on updating the configurable attribute from false to true (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + var getFunc = function () { + return 11; + }; + + Object.defineProperty(arrObj, "0", { + get: getFunc, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "0", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-195.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-195.js new file mode 100644 index 0000000000..b27772d2dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-195.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-195", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-195.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is an inherited accessor property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + var arrObj = []; + + function getFunc() { + return arrObj.helpVerifySet; + } + function setFunc(value) { + arrObj.helpVerifySet = value; + } + + Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc, + configurable: false + }); + + arrObj[0] = 13; + + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "helpVerifySet", false, false); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-196.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-196.js new file mode 100644 index 0000000000..95113728f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-196.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: "15.2.3.6-4-196", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-196.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is own accessor property that overrides an inherited data property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 11, + configurable: true + }); + + var arrObj = []; + Object.defineProperty(arrObj, "0", { + get: function () { }, + configurable: false + }); + + Object.defineProperty(arrObj, "0", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-197.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-197.js new file mode 100644 index 0000000000..ae3726d023 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-197.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: "15.2.3.6-4-197", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-197.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is own accessor property that overrides an inherited accessor property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { }, + configurable: true + }); + + var arrObj = []; + Object.defineProperty(arrObj, "0", { + get: function () { }, + configurable: false + }); + + Object.defineProperty(arrObj, "0", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-198.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-198.js new file mode 100644 index 0000000000..5938d9b976 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-198.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-198", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-198.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O', test TypeError is thrown when 'O' is not extensible (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + Object.preventExtensions(arrObj); + + try { + var desc = { value: 1 }; + Object.defineProperty(arrObj, "0", desc); + return false; + } catch (e) { + return e instanceof TypeError && (arrObj.hasOwnProperty("0") === false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-199.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-199.js new file mode 100644 index 0000000000..9f45bd735d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-199.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: "15.2.3.6-4-199", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-199.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O', test 'name' is defined as data property when 'desc' is generic descriptor (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { + enumerable: true + }); + + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-2.js new file mode 100644 index 0000000000..ac53f66172 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-2.js @@ -0,0 +1,53 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For newly defined data properties, attributes +missing from desc should have values set to the defaults from 8.6.1. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-2.js", + +description: "Object.defineProperty sets missing attributes to their default values (data properties)(8.12.9 step 4.a.i)", + +test: function testcase() { + var o = {}; + + var desc = { value: 1 }; + Object.defineProperty(o, "foo", desc); + + var propDesc = Object.getOwnPropertyDescriptor(o, "foo"); + + if (propDesc.value === 1 && // this is the value that was set + propDesc.writable === false && // false by default + propDesc.enumerable === false && // false by default + propDesc.configurable === false) { // false by default + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-20.js new file mode 100644 index 0000000000..b885a70826 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-20.js @@ -0,0 +1,66 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For non-configurable properties, step 11.a.ii +of [[DefineOwnProperty]] rejects changing the getter if present. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-20", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-20.js", + +description: "Object.defineProperty throws TypeError when changing getter (if present) of non-configurable accessor properties(8.12.9 step 11.a.ii)", + +test: function testcase() { + var o = {}; + + // create an accessor property; all other attributes default to false. + // dummy getter/setter + var getter = function () { return 1;} + var d1 = { get: getter, configurable: false }; + Object.defineProperty(o, "foo", d1); + + // now, trying to change the setter should fail, since [[Configurable]] + // on the original property will be false. + var desc = { get: undefined }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + + if (d2.get === getter && + d2.configurable === false && + d2.enumerable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-200.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-200.js new file mode 100644 index 0000000000..9025788a78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-200.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: "15.2.3.6-4-200", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-200.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O', test [[Value]] of 'name' property of 'Attributes' is set as undefined if [[Value]] is absent in data descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { + writable: true, + enumerable: true, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-201.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-201.js new file mode 100644 index 0000000000..e887bed2f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-201.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: "15.2.3.6-4-201", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-201.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O' and [[Writable]] is absent in data descriptor 'desc', test [[Writable]] attribute of property 'name' is set to false (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { + value: 1001, + enumerable: true, + configurable: false + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-202.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-202.js new file mode 100644 index 0000000000..01117e375f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-202.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: "15.2.3.6-4-202", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-202.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O' and [[Enumerable]] is absent in data descriptor 'desc', test [[Enumerable]] of property 'name' is set to false (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { + value: 1001, + writable: true, + configurable: true + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-203.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-203.js new file mode 100644 index 0000000000..ea3d3b77a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-203.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: "15.2.3.6-4-203", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-203.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O' and [[Configurable]] is absent in data descriptor 'desc', test [[Configurable]] of property 'name' is set to false (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { + value: 1001, + writable: true, + enumerable: true + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-204.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-204.js new file mode 100644 index 0000000000..f1a3f23239 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-204.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-204", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-204.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'desc' is data descriptor, test updating all attribute values of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(arrObj, "0", { + value: 1001, + writable: false, + enumerable: false, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-205.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-205.js new file mode 100644 index 0000000000..5477282e78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-205.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-205", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-205.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O' and [[Get]] is absent in accessor descriptor 'desc', test [[Get]] attribute of property 'name' is set to undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; + }; + + Object.defineProperty(arrObj, "0", { + set: setFunc, + enumerable: true, + configurable: true + }); + + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-206.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-206.js new file mode 100644 index 0000000000..1af2294dd6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-206.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-206", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-206.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O', test [[Set]] of 'name' property in 'Attributes' is set as undefined if [[Set]] is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + var getFunc = function () { }; + + Object.defineProperty(arrObj, "0", { + get: getFunc, + enumerable: true, + configurable: true + }); + + var desc = Object.getOwnPropertyDescriptor(arrObj, "0"); + + return arrObj.hasOwnProperty("0") && desc.hasOwnProperty("set") && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays() && + fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-207.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-207.js new file mode 100644 index 0000000000..eb5c8cec99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-207.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-207", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-207.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O' and [[Enumerable]] is absent in accessor descriptor 'desc', test [[Enumerable]] attribute of property 'name' is set to false (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; + }; + var getFunc = function () { }; + + Object.defineProperty(arrObj, "0", { + set: setFunc, + get: getFunc, + configurable: true + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-208.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-208.js new file mode 100644 index 0000000000..e668cb9500 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-208.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-208", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-208.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' property doesn't exist in 'O' and [[Configurable]] is absent in accessor descriptor 'desc', test [[Configurable]] attribute of property 'name' is set to false (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; + }; + var getFunc = function () { }; + + Object.defineProperty(arrObj, "0", { + set: setFunc, + get: getFunc, + enumerable: true + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-209.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-209.js new file mode 100644 index 0000000000..23e2bf0b84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-209.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-209", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-209.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'desc' is accessor descriptor, test updating all attribute values of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; + }; + var getFunc = function () { + return 14; + }; + + Object.defineProperty(arrObj, "0", { + get: function () { + return 11; + }, + set: function () { }, + configurable: true, + enumerable: true + }); + + Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc, + configurable: false, + enumerable: false + }); + + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-21.js new file mode 100644 index 0000000000..3757d5f0e6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-21.js @@ -0,0 +1,62 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For non-configurable properties, step 11.a.ii +of [[DefineOwnProperty]] permits setting a getter if absent. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-21", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-21.js", + +description: "Object.defineProperty permits setting a getter (if absent) of non-configurable accessor properties(8.12.9 step 11.a.ii)", + +test: function testcase() { + var o = {}; + + // create an accessor property; all other attributes default to false. + // dummy setter + var setter = function (x) {} + var d1 = { set: setter }; + Object.defineProperty(o, "foo", d1); + + // now, trying to set the getter should succeed even though [[Configurable]] + // on the original property will be false. Existing values of need to be preserved. + var getter = undefined; + var desc = { get: getter }; + + Object.defineProperty(o, "foo", desc); + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + + if (d2.get === getter && + d2.set === setter && + d2.configurable === false && + d2.enumerable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-210.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-210.js new file mode 100644 index 0000000000..3d31994a50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-210.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-210", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-210.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' makes no change if every field in 'desc' is absent (name is data property) (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + arrObj[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(arrObj, "0", {}); + return dataPropertyAttributesAreCorrect(arrObj, "0", 101, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-211.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-211.js new file mode 100644 index 0000000000..fee67cddf4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-211.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-211", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-211.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' makes no change if every field in 'desc' is absent(name is accessor property) (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + function getFunc() { + return 11; + } + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + Object.defineProperty(arrObj, "0", {}); + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-212.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-212.js new file mode 100644 index 0000000000..882da28a3b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-212.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-212", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-212.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' makes no change if the value of every field in 'desc' is the same value as the corresponding field in 'name'(desc is data property) (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + arrObj[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(arrObj, "0", { + value: 100, + writable: true, + enumerable: true, + configurable: true + }); + + return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-213.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-213.js new file mode 100644 index 0000000000..00ef4d9538 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-213.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-213", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-213.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' makes no change if the value of every field in 'desc' is the same value as the corresponding field in 'name'(desc is accessor property) (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + var getFunc = function () { + return "100"; + }; + var setFunc = function (value) { + arrObj.setVerifyHelpProp = value; + }; + + var desc = { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }; + + Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + Object.defineProperty(arrObj, "0", desc); + + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-214.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-214.js new file mode 100644 index 0000000000..a0374592e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-214.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-214", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-214.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property and its configurable and writable attributes are set to false, test TypeError is thrown when the type of the [[Value]] field of 'desc' is different from the type of the [[Value]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, 0, { + value: 101, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "0", { value: "abc" }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-215.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-215.js new file mode 100644 index 0000000000..8b7be44a97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-215.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-215", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-215.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { value: undefined }); + + Object.defineProperty(arrObj, "0", { value: undefined }); + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-216.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-216.js new file mode 100644 index 0000000000..1b8aa9447f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-216.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-216", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-216.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are null (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { value: null }); + + Object.defineProperty(arrObj, "0", { value: null }); + return dataPropertyAttributesAreCorrect(arrObj, "0", null, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-217.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-217.js new file mode 100644 index 0000000000..8db71d2376 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-217.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-217", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-217.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are NaN (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { value: NaN }); + + Object.defineProperty(arrObj, "0", { value: NaN }); + + var hasProperty = arrObj.hasOwnProperty("0"); + var verifyValue = (arrObj[0] !== arrObj[0]); + + var verifyWritable = false; + arrObj[0] = 1001; + verifyWritable = arrObj[0] !== 1001 && arrObj[0] !== arrObj[0]; + + var verifyEnumerable = false; + for (var p in arrObj) { + if (p === "0") { + verifyEnumerable = true; + } + } + + var verifyConfigurable = false; + delete arrObj[0]; + verifyConfigurable = arrObj.hasOwnProperty("0"); + + return hasProperty && verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-218.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-218.js new file mode 100644 index 0000000000..4df542bf3e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-218.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-218", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-218.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, test TypeError is thrown when the [[Value]] field of 'desc' is +0, and the [[Value]] attribute value of 'name' is -0 (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { value: -0 }); + + try { + Object.defineProperty(arrObj, "0", { value: +0 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", -0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-219.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-219.js new file mode 100644 index 0000000000..7341a2d79a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-219.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: "15.2.3.6-4-219", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-219.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, test TypeError is thrown when the [[Value]] field of 'desc' is -0, and the [[Value]] attribute value of 'name' is +0 (15.4.5.1 step 4.c)", + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { value: +0 }); + + try { + Object.defineProperty(arrObj, "0", { value: -0 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", +0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-22.js new file mode 100644 index 0000000000..75b03e2a96 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-22.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-22.js", + + description: "Object.defineProperty - 'name' is existing own data property (8.12.9 step 1)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "foo", { + value: 11, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + value: 12, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && obj.foo === 11; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-220.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-220.js new file mode 100644 index 0000000000..80e6a6894f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-220.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-220", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-220.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two numbers with same vaule (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { value: 101 }); + + Object.defineProperty(arrObj, "0", { value: 101 }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-221.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-221.js new file mode 100644 index 0000000000..af4fb36737 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-221.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-221", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-221.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, test TypeError is thrown when the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two numbers with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, 0, { + value: 101, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "0", { value: 123 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-222.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-222.js new file mode 100644 index 0000000000..124b2386c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-222.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-222", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-222.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two strings which have same length and same characters in corresponding positions (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { value: "abcd" }); + + Object.defineProperty(arrObj, "0", { value: "abcd" }); + return dataPropertyAttributesAreCorrect(arrObj, "0", "abcd", false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-223.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-223.js new file mode 100644 index 0000000000..99eea66d2e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-223.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-223", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-223.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, test TypeError is thrown when the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two strings with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, 0, { + value: "abcd", + writable: false, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "0", { value: "fghj" }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", "abcd", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-224.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-224.js new file mode 100644 index 0000000000..a5093e9e43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-224.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-224", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-224.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { value: true }); + + Object.defineProperty(arrObj, "0", { value: true }); + return dataPropertyAttributesAreCorrect(arrObj, "0", true, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-225.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-225.js new file mode 100644 index 0000000000..727f5b59bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-225.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-225", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-225.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, test TypeError is thrown when the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, 0, { + value: true, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "0", { value: false }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", true, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-226.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-226.js new file mode 100644 index 0000000000..169ad5c2dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-226.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: "15.2.3.6-4-226", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-226.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two objects which refer to the same object (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + var obj1 = { length: 10 }; + + Object.defineProperty(arrObj, "0", { value: obj1 }); + + Object.defineProperty(arrObj, "0", { value: obj1 }); + return dataPropertyAttributesAreCorrect(arrObj, "0", obj1, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-227.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-227.js new file mode 100644 index 0000000000..78d677c32e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-227.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-227", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-227.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, test TypeError is thrown when the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two objects which refer to two different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + var obj1 = { length: 10 }; + Object.defineProperty(arrObj, 0, { + value: obj1, + writable: false, + configurable: false + }); + + var obj2 = { length: 20 }; + + try { + Object.defineProperty(arrObj, "0", { value: obj2 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", obj1, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-228.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-228.js new file mode 100644 index 0000000000..27a5f341af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-228.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-228", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-228.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Writable]] field of 'desc' and the [[Writable]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { writable: false }); + + Object.defineProperty(arrObj, "0", { writable: false }); + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-229.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-229.js new file mode 100644 index 0000000000..3ba5068e5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-229.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-229", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-229.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Writable]] field of 'desc' and the [[Writable]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { writable: false, configurable: true }); + + Object.defineProperty(arrObj, "0", { writable: true }); + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-23.js new file mode 100644 index 0000000000..5839214daa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-23.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-23.js", + + description: "Object.defineProperty - 'name' is existing an inherited data property (8.12.9 step 1)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "foo", { + value: 11, + configurable: false + }); + + var ConstructFun = function () {}; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + + Object.defineProperty(obj, "foo", { + configurable: true + }); + return obj.hasOwnProperty("foo") && (typeof obj.foo) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-230.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-230.js new file mode 100644 index 0000000000..5b332fcd97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-230.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-230", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-230.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Get]] field of 'desc' and the [[Get]] attribute value of 'name' are two objects which refer to the same object (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + arrObj.helpVerifySet = 10; + + function getFunc() { + return arrObj.helpVerifySet; + } + function setFunc(value) { + arrObj.helpVerifySet = value; + } + + Object.defineProperty(arrObj, "0", { + get: getFunc, + set: setFunc + }); + + Object.defineProperty(arrObj, "0", { + get: getFunc + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "helpVerifySet", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-231.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-231.js new file mode 100644 index 0000000000..2015f672c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-231.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-231", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-231.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Get]] field of 'desc' and the [[Get]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + arrObj.helpVerifySet = 10; + + function getFunc1() { + return 20; + } + function getFunc2() { + return arrObj.helpVerifySet; + } + function setFunc(value) { + arrObj.helpVerifySet = value; + } + + Object.defineProperty(arrObj, "0", { + get: getFunc1, + set: setFunc, + configurable: true + }); + + Object.defineProperty(arrObj, "0", { + get: getFunc2 + }); + + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc2, setFunc, "helpVerifySet", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-232.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-232.js new file mode 100644 index 0000000000..68600f1d61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-232.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-232", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-232.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Set]] field of 'desc' and the [[Set]] attribute value of 'name' are two objects which refer to the same object (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "0", { set: setFunc }); + + Object.defineProperty(arrObj, "0", { set: setFunc }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-233.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-233.js new file mode 100644 index 0000000000..d3a0471cab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-233.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-233", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-233.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Set]] field of 'desc' and the [[Set]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + function setFunc1() { } + + Object.defineProperty(arrObj, "0", { + set: setFunc1, + configurable: true + }); + + function setFunc2(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "0", { set: setFunc2 }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc2, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-234.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-234.js new file mode 100644 index 0000000000..16f8f72cdc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-234.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-234", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-234.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Enumerable]] field of 'desc' and the [[Enumerable]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { enumerable: false }); + + Object.defineProperty(arrObj, "0", { enumerable: false }); + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-235.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-235.js new file mode 100644 index 0000000000..4abef6141e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-235.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-235", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-235.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Enumerable]] field of 'desc' and the [[Enumerable]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { enumerable: false, configurable: true }); + + Object.defineProperty(arrObj, "0", { enumerable: true }); + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-236.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-236.js new file mode 100644 index 0000000000..034ec0c5aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-236.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-236", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-236.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Configurable]] field of 'desc' and the [[Configurable]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { configurable: false }); + + Object.defineProperty(arrObj, "0", { configurable: false }); + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-237.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-237.js new file mode 100644 index 0000000000..0f18225349 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-237.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-237", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-237.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index property, the [[Configurable]] field of 'desc' and the [[Configurable]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "0", { configurable: true }); + + Object.defineProperty(arrObj, "0", { configurable: false }); + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-238.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-238.js new file mode 100644 index 0000000000..0dd577b487 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-238.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-238", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-238.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, TypeError is thrown if the [[Configurable]] attribute value of 'name' is false and the [[Configurable]] field of 'desc' is true (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: 3, + writable: true, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "1", { + value: 13, + writable: true, + configurable: true + }); + return false; + + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, true, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-239.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-239.js new file mode 100644 index 0000000000..a4c0f9d934 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-239.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: "15.2.3.6-4-239", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-239.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, TypeError is thrown if the [[Configurable]] attribute value of 'name' is false, and [[Enumerable]] of 'desc' is present and its value is different from the [[Enumerable]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: 3, + writable: true, + configurable: false, + enumerable: false + }); + + try { + Object.defineProperty(arrObj, "1", { + value: 13, + writable: true, + enumerable: true + }); + return false; + + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, true, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-24.js new file mode 100644 index 0000000000..0d529e6c35 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-24.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-24.js", + + description: "Object.defineProperty - 'name' is own data property that overrides an inherited data property (8.12.9 step 1)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "foo", { + value: 12, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + Object.defineProperty(obj, "foo", { + value: 11, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && obj.foo === 11; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-240.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-240.js new file mode 100644 index 0000000000..1c971bf7ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-240.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: "15.2.3.6-4-240", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-240.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, TypeError is thrown if 'name' is accessor property, and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "1", { + set: setFunc, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "1", { + value: 13 + }); + return false; + + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-241.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-241.js new file mode 100644 index 0000000000..c14f0a68df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-241.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-241", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-241.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, TypeError is thrown if 'name' is data property, and'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is false (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: 3, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "1", { + set: function () { } + }); + return false; + + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-242-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-242-1.js new file mode 100644 index 0000000000..279d333fc5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-242-1.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-242-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-242-1.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is true, test 'name' is updated successfully (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [3]; + + Object.defineProperty(arrObj, "0", { + value: 1001, + writable: false, + enumerable: false + }); + + return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-242.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-242.js new file mode 100644 index 0000000000..e1224bf28d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-242.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-242", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-242.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is true, test 'name' is converted from data property to accessor property (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [3]; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + Object.defineProperty(arrObj, "0", { + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-243-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-243-1.js new file mode 100644 index 0000000000..4b71d3b233 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-243-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-243-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-243-1.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is accessor property and assignment to the accessor property, fails to convert accessor property from accessor property to data property (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function getFunc() { + return 3; + } + Object.defineProperty(arrObj, "1", { + get: getFunc, + configurable: true + }); + + arrObj[1] = 4; + + return accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-243.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-243.js new file mode 100644 index 0000000000..93d5501eab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-243.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-243", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-243.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is accessor property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is true, test 'name' is converted from accessor property to data property (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function getFunc() { + return 3; + } + Object.defineProperty(arrObj, "1", { + get: getFunc, + configurable: true + }); + + Object.defineProperty(arrObj, "1", { + value: 12 + }); + + return dataPropertyAttributesAreCorrect(arrObj, "1", 12, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-244.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-244.js new file mode 100644 index 0000000000..26b6b0d62e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-244.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-244", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-244.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false and the [[Writable]] field of 'desc' is true (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + writable: false, + configurable: false + }); + + try { + + Object.defineProperty(arrObj, "1", { + writable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", undefined, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-245.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-245.js new file mode 100644 index 0000000000..c6ca5070ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-245.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-245", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-245.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false, and the type of the [[Value]] field of 'desc' is different from the type of the [[Value]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: 3, + writable: false, + configurable: false + }); + + try { + + Object.defineProperty(arrObj, "1", { + value: "abc" + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-246.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-246.js new file mode 100644 index 0000000000..8838b7041a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-246.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-246", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-246.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false, and the [[Value]] field of 'desc' is +0, and the [[Value]] attribute value of 'name' is -0 (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: -0 + + }); + + try { + Object.defineProperty(arrObj, "1", { + value: +0 + }); + + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", -0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-247.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-247.js new file mode 100644 index 0000000000..5ebed0b898 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-247.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-247", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-247.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false, and the [[Value]] field of 'desc' is -0, and the [[Value]] attribute value of 'name' is +0 (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: +0 + }); + + try { + + Object.defineProperty(arrObj, "1", { + value: -0 + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", +0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-248.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-248.js new file mode 100644 index 0000000000..4b32e7d75c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-248.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-248", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-248.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false, and the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two numbers with different vaules (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: 12 + }); + + try { + Object.defineProperty(arrObj, "1", { + value: 15 + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 12, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-249.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-249.js new file mode 100644 index 0000000000..092e2bbb33 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-249.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-249", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-249.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false, and the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two strings with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: "abc" + }); + + try { + Object.defineProperty(arrObj, "1", { + value: "fgh" + }); + + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", "abc", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-25.js new file mode 100644 index 0000000000..1171f3b1f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-25.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-25.js", + + description: "Object.defineProperty - 'data' is own data property that overrides an inherited accessor property (8.12.9 step 1)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "foo", { + get: function () { }, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + Object.defineProperty(obj, "foo", { + value: 11, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && obj.foo === 11; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-250.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-250.js new file mode 100644 index 0000000000..8ffb3ecee6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-250.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-250", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-250.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false, and the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two booleans with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + value: false + }); + + try { + Object.defineProperty(arrObj, "1", { + value: true + }); + + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", false, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-251.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-251.js new file mode 100644 index 0000000000..452458f366 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-251.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-251", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-251.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Writable]] attribute value of 'name' is false, and the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + var obj = { length: 10 }; + + Object.defineProperty(arrObj, "1", { + value: obj + }); + + try { + Object.defineProperty(arrObj, "1", { value: {} }); + + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", obj, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-252.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-252.js new file mode 100644 index 0000000000..7e44b20f78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-252.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-252", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-252.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is accessor property and 'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' and the [[Set]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + Object.defineProperty(arrObj, "1", { + set: setFunc + }); + + try { + Object.defineProperty(arrObj, "1", { + set: function () { } + }); + + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-253.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-253.js new file mode 100644 index 0000000000..b248c7d390 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-253.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-253", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-253.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is accessor property and 'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' is an object and the [[Set]] attribute value of 'name' is undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + function getFunc() { + return 12; + } + + Object.defineProperty(arrObj, "1", { + get: getFunc, + set: undefined + }); + + try { + Object.defineProperty(arrObj, "1", { + set: function () { } + }); + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, undefined, undefined, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-254.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-254.js new file mode 100644 index 0000000000..2b4adbeb19 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-254.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-254", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-254.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is accessor property and 'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is not thrown if the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' and the [[Set]] attribute value of 'name' are undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "1", { + set: undefined + }); + var hasProperty = arrObj.hasOwnProperty("1"); + + Object.defineProperty(arrObj, "1", { + set: undefined + }); + + var desc = Object.getOwnPropertyDescriptor(arrObj, "1"); + + var verifyGet = desc.hasOwnProperty("get") && typeof desc.get === "undefined"; + + var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined"; + + var verifyEnumerable = false; + for (var p in arrObj) { + if (p === "1") { + verifyEnumerable = true + } + } + + var verifyConfigurable = false; + delete arrObj[1]; + verifyConfigurable = arrObj.hasOwnProperty("1"); + + return hasProperty && verifyGet && verifySet && !verifyEnumerable && verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-255.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-255.js new file mode 100644 index 0000000000..b007c5e766 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-255.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: "15.2.3.6-4-255", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-255.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is accessor property and 'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Get]] field of 'desc' is present, and the [[Get]] field of 'desc' and the [[Get]] attribute value of 'name' are two objects which refer to the different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + + function getFunc() { + return 12; + } + Object.defineProperty(arrObj, "1", { + get: getFunc + }); + + try { + Object.defineProperty(arrObj, "1", { + get: function () { + return 14; + } + }); + + return false; + } catch (e) { + var hasProperty = arrObj.hasOwnProperty("1"); + var desc = Object.getOwnPropertyDescriptor(arrObj, "1"); + + var verifyGet = arrObj[1] === getFunc(); + + var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined"; + + var verifyEnumerable = false; + for (var p in arrObj) { + if (p === "1") { + verifyEnumerable = true + } + } + + var verifyConfigurable = false; + delete arrObj[1]; + verifyConfigurable = arrObj.hasOwnProperty("1"); + + return e instanceof TypeError && hasProperty && verifyGet && + verifySet && !verifyEnumerable && verifyConfigurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-256.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-256.js new file mode 100644 index 0000000000..7610fdb8e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-256.js @@ -0,0 +1,70 @@ +/// 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: "15.2.3.6-4-256", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-256.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is accessor property and 'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is thrown if the [[Get]] field of 'desc' is present, and the [[Get]] field of 'desc' is an object and the [[Get]] attribute value of 'name' is undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + function getFunc() { + return 12; + } + + Object.defineProperty(arrObj, "1", { + get: getFunc + }); + + try { + Object.defineProperty(arrObj, "1", { + get: undefined + }); + return false; + } catch (e) { + var hasProperty = arrObj.hasOwnProperty("1"); + var desc = Object.getOwnPropertyDescriptor(arrObj, "1"); + + var verifyGet = arrObj[1] === getFunc(); + + var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined"; + + var verifyEnumerable = false; + for (var p in arrObj) { + if (p === "1") { + verifyEnumerable = true + } + } + + var verifyConfigurable = false; + delete arrObj[1]; + verifyConfigurable = arrObj.hasOwnProperty("1"); + + return e instanceof TypeError && hasProperty && verifyGet && + verifySet && !verifyEnumerable && verifyConfigurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-257.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-257.js new file mode 100644 index 0000000000..b84e3c53e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-257.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-257", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-257.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, 'name' is accessor property and 'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'name' is false, test TypeError is not thrown if the [[Get]] field of 'desc' is present, and the [[Get]] field of 'desc' and the [[Get]] attribute value of 'name' are undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arrObj = []; + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "1", { + get: undefined, + set: setFunc, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "1", { + get: undefined + }); + + return accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-258.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-258.js new file mode 100644 index 0000000000..b1d2944a81 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-258.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: "15.2.3.6-4-258", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-258.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is data property and 'desc' is data descriptor, test updating the [[Value]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [100]; + + Object.defineProperty(arrObj, "0", { + value: 200 + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 200, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-259.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-259.js new file mode 100644 index 0000000000..4e7032fb3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-259.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: "15.2.3.6-4-259", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-259.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is data property and 'desc' is data descriptor, test setting the [[Value]] attribute value of 'name' as undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [100]; + + Object.defineProperty(arrObj, "0", { + value: undefined + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-26.js new file mode 100644 index 0000000000..2a7061fabd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-26.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: "15.2.3.6-4-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-26.js", + + description: "Object.defineProperty - 'name' is own accessor property (8.12.9 step 1)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + get: function () { + return 11; + }, + configurable: false + }); + + try { + Object.defineProperty(obj, "property", { + get: function () { + return 12; + }, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && obj.property === 11; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-260.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-260.js new file mode 100644 index 0000000000..1a4744b329 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-260.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-260", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-260.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is data property and 'desc' is data descriptor, test setting the [[Value]] attribute value of 'name' from undefined to number (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [undefined]; + Object.defineProperty(arrObj, "0", { + value: 100 + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-261.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-261.js new file mode 100644 index 0000000000..9b9ba31c80 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-261.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-261", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-261.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is data property and 'desc' is data descriptor, test updating the [[Writable]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [100]; + Object.defineProperty(arrObj, "0", { + writable: false + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 100, false, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-262.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-262.js new file mode 100644 index 0000000000..65f4cbd97d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-262.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: "15.2.3.6-4-262", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-262.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is data property and 'desc' is data descriptor, test updating the [[Enumerable]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [100]; + + Object.defineProperty(arrObj, "0", { + enumerable: false + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-263.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-263.js new file mode 100644 index 0000000000..532a699076 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-263.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: "15.2.3.6-4-263", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-263.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is data property and 'desc' is data descriptor, test updating the [[Configurable]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [100]; + + Object.defineProperty(arrObj, "0", { + configurable: false + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-264.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-264.js new file mode 100644 index 0000000000..59495d9c01 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-264.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: "15.2.3.6-4-264", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-264.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is data property and 'desc' is data descriptor, test updating multiple attribute values of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = [100]; + Object.defineProperty(arrObj, "0", { + writable: false, + enumerable: false, + configurable: false + }); + return dataPropertyAttributesAreCorrect(arrObj, "0", 100, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-265.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-265.js new file mode 100644 index 0000000000..32e731e03b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-265.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-265", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-265.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Get]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function getFunc() { + return 100; + } + Object.defineProperty(arrObj, "0", { + get: function () { + return 12; + }, + configurable: true + }); + Object.defineProperty(arrObj, "0", { + get: getFunc + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-266.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-266.js new file mode 100644 index 0000000000..2464364bf3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-266.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-266", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-266.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test setting the [[Get]] attribute value of 'name' as undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + function getFunc() { + return 12; + } + + Object.defineProperty(arrObj, "0", { + get: getFunc, + configurable: true + }); + + Object.defineProperty(arrObj, "0", { + get: undefined + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-267.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-267.js new file mode 100644 index 0000000000..eaa895242a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-267.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-267", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-267.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Get]] attribute value of 'name' from undefined to function object (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function getFunc() { + return 12; + } + Object.defineProperty(arrObj, "0", { + get: undefined, + configurable: true + }); + + Object.defineProperty(arrObj, "0", { + get: getFunc + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-268.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-268.js new file mode 100644 index 0000000000..07b348025e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-268.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-268", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-268.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Set]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + Object.defineProperty(arrObj, "0", { + set: function () { }, + configurable: true + }); + + Object.defineProperty(arrObj, "0", { + set: setFunc + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-269.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-269.js new file mode 100644 index 0000000000..68d1e8be70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-269.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-269", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-269.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test setting the [[Set]] attribute value of 'name' as undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "0", { + set: function () { }, + configurable: true + }); + + Object.defineProperty(arrObj, "0", { + set: undefined + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-27.js new file mode 100644 index 0000000000..c073e8fd96 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-27.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-27.js", + + description: "Object.defineProperty - 'name' is an inherited accessor property (8.12.9 step 1)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "property", { + get: function () { + return 11; + }, + configurable: false + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + + Object.defineProperty(obj, "property", { + get: function () { + return 12; + }, + configurable: true + }); + return obj.hasOwnProperty("property") && obj.property === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-270.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-270.js new file mode 100644 index 0000000000..bf59630808 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-270.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-270", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-270.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Set]] attribute value of 'name' from undefined to function object (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "0", { + set: undefined, + configurable: true + }); + + Object.defineProperty(arrObj, "0", { + set: setFunc + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-271.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-271.js new file mode 100644 index 0000000000..230a9ed553 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-271.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-271", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-271.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Enumerable]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "0", { + set: setFunc, + enumerable: true, + configurable: true + }); + + Object.defineProperty(arrObj, "0", { + enumerable: false + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-272.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-272.js new file mode 100644 index 0000000000..957093f8b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-272.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-272", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-272.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test updating the [[Configurable]] attribute value of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "0", { + set: setFunc, + configurable: true + }); + + Object.defineProperty(arrObj, "0", { + configurable: false + }); + return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-273.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-273.js new file mode 100644 index 0000000000..e4b004ea61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-273.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-273", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-273.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, name is accessor property and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + function getFunc() { + return 12; + } + Object.defineProperty(arrObj, "1", { + get: function () { + return 6; + }, + set: setFunc, + enumerable: true, + configurable: true + }); + + Object.defineProperty(arrObj, "1", { + get: getFunc, + enumerable: false, + configurable: false + }); + return accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, setFunc, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-274.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-274.js new file mode 100644 index 0000000000..24246f0fe1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-274.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: "15.2.3.6-4-274", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-274.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, test the length property of 'O' is not changed if ToUint32('name') is less than value of the length property in 'O' (15.4.5.1 step 4.e)", + + test: function testcase() { + + var arrObj = []; + arrObj.length = 3; // default value of length: writable: true, configurable: false, enumerable: false + + Object.defineProperty(arrObj, "1", { + value: 14 + }); + + return arrObj.length === 3 && arrObj[1] === 14; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-275.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-275.js new file mode 100644 index 0000000000..57fba45ac0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-275.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: "15.2.3.6-4-275", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-275.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, test the length property of 'O' is set as ToUint32('name') + 1 if ToUint32('name') equals to value of the length property in 'O' (15.4.5.1 step 4.e.ii)", + + test: function testcase() { + + var arrObj = []; + arrObj.length = 3; // default value of length: writable: true, configurable: false, enumerable: false + + Object.defineProperty(arrObj, "3", { + value: 3 + }); + + return arrObj.length === 4 && arrObj[3] === 3; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-276.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-276.js new file mode 100644 index 0000000000..ee4234d4e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-276.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: "15.2.3.6-4-276", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-276.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is an array index named property, test the length property of 'O' is set as ToUint32('name') + 1 if ToUint32('name') is greater than value of the length property in 'O' (15.4.5.1 step 4.e.ii)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "5", { + value: 3 + }); + + return arrObj.length === 6 && arrObj[5] === 3; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-277.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-277.js new file mode 100644 index 0000000000..f59e17f7db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-277.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-277", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-277.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic property that won't exist on 'O', and 'desc' is data descriptor, test 'name' is defined in 'O' with all correct attribute values (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "property", { + value: 12, + writable: true, + enumerable: true, + configurable: true + }); + + return dataPropertyAttributesAreCorrect(arrObj, "property", 12, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-278.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-278.js new file mode 100644 index 0000000000..8e25614836 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-278.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-278", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-278.js", + + description: "Object.defineProperty - 'name' is generic property that won't exist on 'O', and 'desc' is accessor descriptor, test 'name' is defined in 'O' with all correct attribute values (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + function getFunc() { + return 12; + } + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + + Object.defineProperty(arrObj, "property", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + return accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-279.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-279.js new file mode 100644 index 0000000000..7f3aa4e754 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-279.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-279", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-279.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + function getFunc() { + return 12; + } + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + Object.defineProperty(arrObj, "property", { + get: function () { + return 24; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(arrObj, "property", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + + return accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-28.js new file mode 100644 index 0000000000..5be58a3d13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-28.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-28.js", + + description: "Object.defineProperty - 'name' is own accessor property that overrides an inherited data property (8.12.9 step 1)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "foo", { + value: 11, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + Object.defineProperty(obj, "foo", { + get: function () { }, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-280.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-280.js new file mode 100644 index 0000000000..17a7057724 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-280.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-280", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-280.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'name' (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + arrObj.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(arrObj, "property", { + writable: false, + enumerable: false, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-281.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-281.js new file mode 100644 index 0000000000..3b0415487e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-281.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-281", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-281.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'name' which is defined as non-writable and non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "property", { + value: 12 + }); + try { + Object.defineProperty(arrObj, "property", { + value: 36 + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-282.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-282.js new file mode 100644 index 0000000000..9d9bee90e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-282.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-282", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-282.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "property", { + writable: false + }); + try { + Object.defineProperty(arrObj, "property", { + writable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", undefined, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-283.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-283.js new file mode 100644 index 0000000000..921eac2cd5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-283.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-283", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-283.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "property", { + value: 12, + enumerable: false + }); + try { + Object.defineProperty(arrObj, "property", { + enumerable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-284.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-284.js new file mode 100644 index 0000000000..137758a4f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-284.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-284", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-284.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + Object.defineProperty(arrObj, "property", { + value: 12 + }); + try { + Object.defineProperty(arrObj, "property", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-285.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-285.js new file mode 100644 index 0000000000..19fa70bc11 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-285.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-285", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-285.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + function getFunc() { + return 12; + } + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + Object.defineProperty(arrObj, "property", { + get: getFunc, + set: setFunc + }); + try { + Object.defineProperty(arrObj, "property", { + get: function () { + return 36; + } + }); + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-286.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-286.js new file mode 100644 index 0000000000..09492f6a49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-286.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-286", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-286.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own accessor property of 'O', and 'desc' is accessor descriptor, test TypeError is thrown when updating the [[Set]] attribute value of 'name' (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + Object.defineProperty(arrObj, "property", { + set: setFunc + }); + try { + Object.defineProperty(arrObj, "property", { + set: function () {} + }); + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-287.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-287.js new file mode 100644 index 0000000000..c3cca63124 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-287.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-287", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-287.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + Object.defineProperty(arrObj, "property", { + set: setFunc, + enumerable: false + }); + try { + Object.defineProperty(arrObj, "property", { + enumerable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-288.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-288.js new file mode 100644 index 0000000000..4eaf09e035 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-288.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-288", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-288.js", + + description: "Object.defineProperty - 'O' is an Array, 'name' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arrObj = []; + + function setFunc(value) { + arrObj.setVerifyHelpProp = value; + } + Object.defineProperty(arrObj, "property", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arrObj, "property", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-289-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-289-1.js new file mode 100644 index 0000000000..ba03a1ace7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-289-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-289-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-289-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own property which is defined in both [[ParameterMap]] of 'O' and 'O', and is deleted afterwards, and 'desc' is data descriptor, test 'name' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function (a, b, c) { + delete arguments[0]; + Object.defineProperty(arguments, "0", { + value: 10, + writable: true, + enumerable: true, + configurable: true + }); + var verifyFormal = a === 0; + return dataPropertyAttributesAreCorrect(arguments, "0", 10, true, true, true) && verifyFormal; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-289.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-289.js new file mode 100644 index 0000000000..35c56b0459 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-289.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-289", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-289.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own property of 'O', and is deleted afterwards, and 'desc' is data descriptor, test 'name' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + delete arguments[0]; + Object.defineProperty(arguments, "0", { + value: 10, + writable: true, + enumerable: true, + configurable: true + }); + return dataPropertyAttributesAreCorrect(arguments, "0", 10, true, true, true); + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-29.js new file mode 100644 index 0000000000..c6ff9e8eb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-29.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-29", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-29.js", + + description: "Object.defineProperty - 'name' is own accessor property that overrides an inherited accessor property (8.12.9 step 1)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "foo", { + get: function () { }, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + Object.defineProperty(obj, "foo", { + get: function () { }, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-290-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-290-1.js new file mode 100644 index 0000000000..cb649a23f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-290-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-290-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-290-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own property which is defined in both [[ParameterMap]] of 'O' and 'O', is deleted afterwards, and 'desc' is accessor descriptor, test 'name' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function (a, b, c) { + delete arguments[0]; + function getFunc() { + return 10; + } + function setFunc(value) { + this.setVerifyHelpProp = value; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + var verifyFormal = a === 0; + return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", true, true) && verifyFormal; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && + fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-290.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-290.js new file mode 100644 index 0000000000..8af9685c5e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-290.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-290", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-290.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own property of 'O', and is deleted afterwards, and 'desc' is accessor descriptor, test 'name' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + delete arguments[0]; + function getFunc() { + return 10; + } + function setFunc(value) { + this.setVerifyHelpProp = value; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", true, true); + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-291-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-291-1.js new file mode 100644 index 0000000000..56356a5a17 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-291-1.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-291-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-291-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3 and 5.a.i)", + + test: function testcase() { + return (function (a, b, c) { + function getFunc1() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: true, + configurable: true + }); + function getFunc2() { + return 20; + } + Object.defineProperty(arguments, "0", { + get: getFunc2, + enumerable: false, + configurable: false + }); + var verifyFormal = a === 0; + return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false) && verifyFormal; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && + fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-291.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-291.js new file mode 100644 index 0000000000..5a206a5393 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-291.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-291", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-291.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + function getFunc1() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: true, + configurable: true + }); + function getFunc2() { + return 20; + } + Object.defineProperty(arguments, "0", { + get: getFunc2, + enumerable: false, + configurable: false + }); + return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false); + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-292-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-292-1.js new file mode 100644 index 0000000000..d670176457 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-292-1.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-292-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-292-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own property of 'O' which is also defined in [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3 and 5.b)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false + }); + var verifyFormal = a === 20; + return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false) && verifyFormal; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-292.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-292.js new file mode 100644 index 0000000000..f85cb90640 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-292.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-292", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-292.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false + }); + return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false); + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-1.js new file mode 100644 index 0000000000..3fbadf0a98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-1.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-293-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own data property of 'O', test TypeError is not thrown when updating the [[Value]] attribute value of 'name' which is defined as non-writable and configurable (10.6 [[DefineOwnProperty]] step 3 and 5b)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false + }); + Object.defineProperty(arguments, "0", { + value: 20 + }); + return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, true, true); + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-2.js new file mode 100644 index 0000000000..b6cdaae20a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-2.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-293-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-2.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'name' which is defined as unwritable and non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5b)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + value: 20 + }); + } catch (e) { + var verifyFormal = a === 10; + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal; + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-3.js new file mode 100644 index 0000000000..2685186b23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-3.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-293-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293-3.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is not thrown when updating the [[Value]] attribute value of 'name' which is defined as non-writable and configurable (10.6 [[DefineOwnProperty]] step 3 and step 5.b)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + }); + Object.defineProperty(arguments, "0", { + value: 20 + }); + var verifyFormal = a === 10; + return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, true, true) && verifyFormal; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293.js new file mode 100644 index 0000000000..8631745e02 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-293", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-293.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'name' which is defined as non-writable and non-configurable (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + value: 20 + }); + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false); + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-294-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-294-1.js new file mode 100644 index 0000000000..fa2928844d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-294-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-294-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-294-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and 5b)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + writable: true + }); + } catch (e) { + var verifyFormal = a === 10; + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal; + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-294.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-294.js new file mode 100644 index 0000000000..c4f8f62071 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-294.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-294", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-294.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + writable: true + }); + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false); + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-295-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-295-1.js new file mode 100644 index 0000000000..74d80fef52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-295-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-295-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-295-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5b)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + } catch (e) { + var verifyFormal = a === 10; + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, true, false) && verifyFormal; + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-295.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-295.js new file mode 100644 index 0000000000..f6dad7792a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-295.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-295", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-295.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, true, false); + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-296-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-296-1.js new file mode 100644 index 0000000000..40a5d62fda --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-296-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-296-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-296-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5b)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + } catch (e) { + var verifyFormal = a === 10; + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal; + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-296.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-296.js new file mode 100644 index 0000000000..9cfbc32b39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-296.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-296", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-296.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false); + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-297-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-297-1.js new file mode 100644 index 0000000000..e74515449e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-297-1.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-297-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-297-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5a)", + + test: function testcase() { + return (function (a, b, c) { + function getFunc1() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: false, + configurable: false + }); + function getFunc2() { + return 20; + } + try { + Object.defineProperty(arguments, "0", { + get: getFunc2 + }); + } catch (e) { + var verifyFormal = a === 0; + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false) && verifyFormal; + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && + fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-297.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-297.js new file mode 100644 index 0000000000..0477a0c7d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-297.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-297", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-297.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc1() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: false, + configurable: false + }); + function getFunc2() { + return 20; + } + try { + Object.defineProperty(arguments, "0", { + get: getFunc2 + }); + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false); + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-298-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-298-1.js new file mode 100644 index 0000000000..187ec1228a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-298-1.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-298-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-298-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] steps 4 and 5a)", + + test: function testcase() { + return (function (a, b, c) { + function getFunc() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + try { + Object.defineProperty(arguments, "0", { + set: setFunc + }); + } catch (e) { + var verifyFormal = a === 0; + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false) && verifyFormal; + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && + fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-298.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-298.js new file mode 100644 index 0000000000..f55d9a98f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-298.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-298", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-298.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + try { + Object.defineProperty(arguments, "0", { + set: setFunc + }); + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false); + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-299-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-299-1.js new file mode 100644 index 0000000000..97f10a9eb9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-299-1.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-299-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-299-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] steps 4 and 5a)", + + test: function testcase() { + return (function (a, b, c) { + function getFunc() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + } catch (e) { + var verifyFormal = a === 0; + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false) && verifyFormal; + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && + fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-299.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-299.js new file mode 100644 index 0000000000..31cfd21430 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-299.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-299", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-299.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false); + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-3.js new file mode 100644 index 0000000000..3ec572fd47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-3.js @@ -0,0 +1,56 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For newly defined accessor properties, attributes +missing from desc should have values set to the defaults from 8.6.1. +*/ + + +ES5Harness.registerTest( { +id: "15.2.3.6-4-3", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-3.js", + +description: "Object.defineProperty sets missing attributes to their default values (accessor)(8.12.9 step 4.b.i)", + +test: function testcase() { + var o = {}; + + var getter = function () { return 1; }; + var desc = { get: getter }; + + Object.defineProperty(o, "foo", desc); + + var propDesc = Object.getOwnPropertyDescriptor(o, "foo"); + + if (typeof(propDesc.get) === "function" && // the getter must be the function that was provided + propDesc.get === getter && + propDesc.enumerable === false && // false by default + propDesc.configurable === false) { // false by default + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-30.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-30.js new file mode 100644 index 0000000000..50eb759b61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-30.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-30", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-30.js", + + description: "Object.defineProperty - 'name' is own accessor property without a get function (8.12.9 step 1)", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "foo", { + set: function () { }, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-300-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-300-1.js new file mode 100644 index 0000000000..d16992e8f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-300-1.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-300-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-300-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4 and step 5a)", + + test: function testcase() { + return (function (a, b, c) { + function getFunc() { + return 0; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + } catch (e) { + var verifyFormal = a === 0; + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false) && verifyFormal; + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && + fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-300.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-300.js new file mode 100644 index 0000000000..a4d36319be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-300.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-300", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-300.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false); + } + return false; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-301-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-301-1.js new file mode 100644 index 0000000000..043670f047 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-301-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-301-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-301-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is an index named property of 'O', and 'desc' is data descriptor, test 'name' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function (a, b, c) { + delete arguments[0]; + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + var verifyFormal = a === 0; + return dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-301.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-301.js new file mode 100644 index 0000000000..69ebfce822 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-301.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-301", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-301.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an array index named property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is data descriptor, test 'name' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + delete arguments[0]; + Object.defineProperty(arguments, "0", { + value: 10, + writable: false, + enumerable: false, + configurable: false + }); + return dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false); + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-302-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-302-1.js new file mode 100644 index 0000000000..0c7febd5ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-302-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-302-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-302-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is an index named property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test 'name' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3 and step 5a)", + + test: function testcase() { + return (function (a, b, c) { + delete arguments[0]; + function getFunc() { + return 10; + } + function setFunc(value) { + this.setVerifyHelpProp = value; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + var verifyFormal = a === 0; + return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", false, false) && verifyFormal; + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && + fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-302.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-302.js new file mode 100644 index 0000000000..12d70217ab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-302.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-302", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-302.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test 'name' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + delete arguments[0]; + function getFunc() { + return 10; + } + function setFunc(value) { + this.setVerifyHelpProp = value; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", false, false); + }(0, 1, 2)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-303.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-303.js new file mode 100644 index 0000000000..a659185cb4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-303.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-303", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-303.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + function getFunc1() { + return 10; + } + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: true, + configurable: true + }); + function getFunc2() { + return 20; + } + Object.defineProperty(arguments, "0", { + get: getFunc2, + enumerable: false, + configurable: false + }); + return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false); + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-304.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-304.js new file mode 100644 index 0000000000..4a3bd77755 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-304.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-304", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-304.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named data property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'name' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 20, + writable: false, + enumerable: false, + configurable: false + }); + return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false); + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-305.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-305.js new file mode 100644 index 0000000000..ccd6be0314 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-305.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-305", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-305.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named data property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'name' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 0, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(arguments, "0", { + value: 10 + }); + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false); + } + return false; + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-306.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-306.js new file mode 100644 index 0000000000..bdabc0731a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-306.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-306", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-306.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named data property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + writable: true + }); + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false); + } + return false; + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-307.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-307.js new file mode 100644 index 0000000000..cf25a3c44b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-307.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-307", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-307.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named data property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, true, false); + } + return false; + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-308.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-308.js new file mode 100644 index 0000000000..bbdeb50243 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-308.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-308", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-308.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named data property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false); + } + return false; + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-309.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-309.js new file mode 100644 index 0000000000..eb337c8288 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-309.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-309", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-309.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc1() { + return 0; + } + Object.defineProperty(arguments, "0", { + get: getFunc1, + enumerable: false, + configurable: false + }); + function getFunc2() { + return 10; + } + try { + Object.defineProperty(arguments, "0", { + get: getFunc2 + }); + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false); + } + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-31.js new file mode 100644 index 0000000000..4b52b143fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-31.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-31", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-31.js", + + description: "Object.defineProperty - 'name' is own accessor property without a get function that overrides an inherited accessor property(8.12.9 step 1)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "foo", { + get: function () { }, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + Object.defineProperty(obj, "foo", { + set: function () { }, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-310.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-310.js new file mode 100644 index 0000000000..949794f726 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-310.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-310", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-310.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc() { + return 0; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + function setFunc(value) { + this.setVerifyHelpProp = value; + } + try { + Object.defineProperty(arguments, "0", { + set: setFunc + }); + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false); + } + return false; + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-311.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-311.js new file mode 100644 index 0000000000..57609da8ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-311.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-311", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-311.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc() { + return 0; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + enumerable: false + }); + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false); + } + return false; + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-312.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-312.js new file mode 100644 index 0000000000..e9eaa6ad7d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-312.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-312", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-312.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is an index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc() { + return 0; + } + Object.defineProperty(arguments, "0", { + get: getFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "0", { + configurable: true + }); + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false); + } + return false; + }()); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects() && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-313-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-313-1.js new file mode 100644 index 0000000000..f2a80cb890 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-313-1.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: "15.2.3.6-4-313-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-313-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own property, and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, true, true, true); + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-313.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-313.js new file mode 100644 index 0000000000..bed4a79f62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-313.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: "15.2.3.6-4-313", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-313.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is generic property, and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, true, true, true); + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-314-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-314-1.js new file mode 100644 index 0000000000..99044e8851 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-314-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-314-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-314-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is property, and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function (a, b, c) { + function getFunc() { + return "getFunctionString"; + } + function setFunc(value) { + this.testgetFunction = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", true, true); + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-314.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-314.js new file mode 100644 index 0000000000..2e7e9ada26 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-314.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-314", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-314.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is generic property, and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + function getFunc() { + return "getFunctionString"; + } + function setFunc(value) { + this.testgetFunction = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", true, true); + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-315-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-315-1.js new file mode 100644 index 0000000000..89b118ea8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-315-1.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-315-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-315-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + get: function () { + return 1001; + }, + set: function (value) { + this.testgetFunction1 = value; + }, + enumerable: true, + configurable: true + }); + function getFunc() { + return "getFunctionString"; + } + function setFunc(value) { + this.testgetFunction = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + var verifyFormal = c === 3; + return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", false, false) && verifyFormal; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-315.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-315.js new file mode 100644 index 0000000000..49fe083c12 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-315.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-315", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-315.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is generic own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "genericProperty", { + get: function () { + return 1001; + }, + set: function (value) { + this.testgetFunction1 = value; + }, + enumerable: true, + configurable: true + }); + function getFunc() { + return "getFunctionString"; + } + function setFunc(value) { + this.testgetFunction = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", false, false); + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-316-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-316-1.js new file mode 100644 index 0000000000..4c06f74c99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-316-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-316-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-316-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + Object.defineProperty(arguments, "genericProperty", { + value: 1002, + enumerable: false, + configurable: false + }); + return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1002, true, false, false); + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-316.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-316.js new file mode 100644 index 0000000000..82aef86e8d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-316.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-316", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-316.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is generic own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + Object.defineProperty(arguments, "genericProperty", { + value: 1002, + enumerable: false, + configurable: false + }); + return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1002, true, false, false); + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-317-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-317-1.js new file mode 100644 index 0000000000..535996e8b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-317-1.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-317-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-317-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + value: 1002 + }); + } catch (e) { + var verifyFormal = b === 2; + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, false, false, false) && verifyFormal; + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-317.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-317.js new file mode 100644 index 0000000000..4cae94c917 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-317.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-317", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-317.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "genericProperty", { + value: 1001, + writable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + value: 1002 + }); + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-318-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-318-1.js new file mode 100644 index 0000000000..c86b792a4d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-318-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-318-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-318-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'name' is own data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + writable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + writable: true + }); + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-318.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-318.js new file mode 100644 index 0000000000..0edce1e13c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-318.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-318", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-318.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is generic own data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'name' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "genericProperty", { + writable: false, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + writable: true + }); + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-319-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-319-1.js new file mode 100644 index 0000000000..a890a33426 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-319-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-319-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-319-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + enumerable: false + }); + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, true, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-319.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-319.js new file mode 100644 index 0000000000..7beae1f552 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-319.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-319", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-319.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is own data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "genericProperty", { + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + enumerable: false + }); + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, true, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-32.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-32.js new file mode 100644 index 0000000000..3945cee323 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-32.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-32", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-32.js", + + description: "Object.defineProperty - 'name' is an inherited accessor property without a get function (8.12.9 step 1)", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "foo", { + set: function () { }, + configurable: false + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + var obj = new ConstructFun(); + + Object.defineProperty(obj, "foo", { + configurable: true + }); + return obj.hasOwnProperty("foo") && typeof obj.foo === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-320-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-320-1.js new file mode 100644 index 0000000000..e511bb5307 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-320-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-320-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-320-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function (a, b, c) { + Object.defineProperty(arguments, "genericProperty", { + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + configurable: true + }); + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-320.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-320.js new file mode 100644 index 0000000000..918ebe4def --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-320.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-320", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-320.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is own data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + Object.defineProperty(arguments, "genericProperty", { + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + configurable: true + }); + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-321-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-321-1.js new file mode 100644 index 0000000000..fc1bf0b9c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-321-1.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-321-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-321-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function (a, b, c) { + function getFunc() { + return "genericPropertyString"; + } + function setFunc(value) { + this.helpVerifyGet = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + get: function () { + return "overideGenericPropertyString"; + } + }); + } catch (e) { + var verifyFormal = a === 1; + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "helpVerifyGet", false, false, false) && verifyFormal; + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-321.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-321.js new file mode 100644 index 0000000000..dd8c5d33c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-321.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-321", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-321.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is own accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function getFunc() { + return "genericPropertyString"; + } + function setFunc(value) { + this.helpVerifyGet = value; + } + Object.defineProperty(arguments, "genericProperty", { + get: getFunc, + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + get: function () { + return "overideGenericPropertyString"; + } + }); + } catch (e) { + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "helpVerifyGet", false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-322-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-322-1.js new file mode 100644 index 0000000000..e94c9d86bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-322-1.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-322-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-322-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function (a, b, c) { + function setFunc(value) { + this.genericPropertyString = value; + } + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + set: function (value) { + this.genericPropertyString1 = value; + } + }); + } catch (e) { + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-322.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-322.js new file mode 100644 index 0000000000..19490d3898 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-322.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-322", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-322.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is own accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function setFunc(value) { + this.genericPropertyString = value; + } + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + set: function (value) { + this.genericPropertyString1 = value; + } + }); + } catch (e) { + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-323-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-323-1.js new file mode 100644 index 0000000000..3a5923020b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-323-1.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-323-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-323-1.js", + + description: "Object.defineProperty - ''O' is an Arguments object of a function that has formal parameters, 'P' is own accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function (a, b, c) { + function setFunc(value) { + this.genericPropertyString = value; + } + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + enumerable: false + }); + } catch (e) { + verifyFormal = c === 3; + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", true, false) && verifyFormal; + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-323.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-323.js new file mode 100644 index 0000000000..1ce266f174 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-323.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-323", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-323.js", + + description: "Object.defineProperty - ''O' is an Arguments object, 'P' is own accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function setFunc(value) { + this.genericPropertyString = value; + } + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + enumerable: true, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + enumerable: false + }); + } catch (e) { + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", true, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-324-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-324-1.js new file mode 100644 index 0000000000..f5e9b1d753 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-324-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-324-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-324-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object of a function that has formal parameters, 'P' is own accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function (a, b, c) { + function setFunc(value) { + this.genericPropertyString = value; + } + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + configurable: true + }); + } catch (e) { + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-324.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-324.js new file mode 100644 index 0000000000..bc94d742a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-324.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-324", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-324.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'P' is own accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + return (function () { + function setFunc(value) { + this.genericPropertyString = value; + } + Object.defineProperty(arguments, "genericProperty", { + set: setFunc, + configurable: false + }); + try { + Object.defineProperty(arguments, "genericProperty", { + configurable: true + }); + } catch (e) { + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false); + } + return false; + }(1, 2, 3)); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-325-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-325-1.js new file mode 100644 index 0000000000..f7dde75bf8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-325-1.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-325-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-325-1.js", + + description: "Object.defineProperty - 'O' is an Arguments object which created with function take formal parameters, 'name' is own property of [[ParameterMap]] of 'O', test 'name' is deleted if 'name' is configurable and 'desc' is accessor descriptor (10.6 [[DefineOwnProperty]] step 5.a.i)", + + test: function testcase() { + var argObj = (function (a, b, c) { return arguments; })(1, 2, 3); + var accessed = false; + + Object.defineProperty(argObj, 0, { + get: function () { + accessed = true; + return 12; + } + }); + + return argObj[0] === 12 && accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-325.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-325.js new file mode 100644 index 0000000000..7d69f28478 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-325.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-325", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-325.js", + + description: "Object.defineProperty - 'O' is an Arguments object, 'name' is own property of [[ParameterMap]] of 'O', test 'name' is deleted if 'name' is configurable and 'desc' is accessor descriptor (10.6 [[DefineOwnProperty]] step 5.a.i)", + + test: function testcase() { + var argObj = (function () { return arguments; })(1, 2, 3); + var accessed = false; + + Object.defineProperty(argObj, 0, { + get: function () { + accessed = true; + return 12; + } + }); + + return argObj[0] === 12 && accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-326.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-326.js new file mode 100644 index 0000000000..7e961ce5a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-326.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-326", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-326.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is true) is writable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = (obj.prop === 2010); + obj.prop = 1001; + + return propertyDefineCorrect && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-327.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-327.js new file mode 100644 index 0000000000..ab2b3eb2a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-327.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-327", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-327.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is true) is enumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var property in obj) { + if (property === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-328.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-328.js new file mode 100644 index 0000000000..1a67bbb66d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-328.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-328", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-328.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: true + }); + var beforeDelete = obj.hasOwnProperty("prop"); + delete obj.prop; + var afterDelete = obj.hasOwnProperty("prop"); + return beforeDelete && !afterDelete; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-329.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-329.js new file mode 100644 index 0000000000..702896c520 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-329.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-329", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-329.js", + + description: "ES5 Attributes - success to update [[Writable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + writable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.writable === true && obj.prop === 2010 && desc2.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-33.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-33.js new file mode 100644 index 0000000000..c1d1dd0039 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-33.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-33", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-33.js", + + description: "Object.defineProperty - 'O' is a Function object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var fun = function () { }; + + Object.defineProperty(fun, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(fun, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && fun.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-330.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-330.js new file mode 100644 index 0000000000..2425d50299 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-330.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-330", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-330.js", + + description: "ES5 Attributes - success to update [[enumerable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + enumerable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.enumerable === true && obj.prop === 2010 && desc2.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-331.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-331.js new file mode 100644 index 0000000000..93a80c59ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-331.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-331", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-331.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.configurable === true && obj.prop === 2010 && desc2.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-332.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-332.js new file mode 100644 index 0000000000..28404eb23c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-332.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-332", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-332.js", + + description: "ES5 Attributes - success to update the data property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is true) to an accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + function getFunc() { + return 20; + } + Object.defineProperty(obj, "prop", { + get: getFunc + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("value") && desc2.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-10.js new file mode 100644 index 0000000000..7e9ffc97cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-10.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-333-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-10.js", + + description: "ES5 Attributes - indexed data property 'P' with attributes [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false is writable using simple assignment, 'O' is an Arguments object", + + test: function testcase() { + var obj = (function () { + return arguments; + }()); + + Object.defineProperty(obj, "0", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var verifyValue = (obj[0] === 2010); + obj[0] = 1001; + + return verifyValue && obj[0] === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-5.js new file mode 100644 index 0000000000..32b11449ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-5.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-333-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-5.js", + + description: "ES5 Attributes - named data property 'P' with attributes [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false is writable using simple assignment, 'O' is an Arguments object", + + test: function testcase() { + var obj = (function () { + return arguments; + }()); + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var verifyValue = (obj.prop === 2010); + obj.prop = 1001; + + return verifyValue && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-8.js new file mode 100644 index 0000000000..fff9f196b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-8.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-333-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-8.js", + + description: "Object.defineProperty will update [[Value]] attribute of indexed property 'P'successfully when [[Configurable]] attribute is false, [[Writable]] attribute is true and 'O' is an Arguments object (8.12.9 - step 10)", + + test: function testcase() { + + var obj = (function () { + return arguments; + }()); + + Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + configurable: false + }); + + Object.defineProperty(obj, "0", { + value: 1002 + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1002, true, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-9.js new file mode 100644 index 0000000000..f2cbdc3b3b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-9.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-333-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333-9.js", + + description: "Object.defineProperty - Named property 'P' with attributes [[Writable]]: true, [[Enumerable]]:true, [[Configurable]]:false is writable using simple assignment, 'A' is an Array Object", + + test: function testcase() { + var obj = []; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var verifyValue = (obj.prop === 2010); + obj.prop = 1001; + + return verifyValue && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333.js new file mode 100644 index 0000000000..858e05eabd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-333", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-333.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is false) is writable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = (obj.prop === 2010); + obj.prop = 1001; + + return propertyDefineCorrect && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-334.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-334.js new file mode 100644 index 0000000000..deb78804bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-334.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-334", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-334.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is false) is enumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-335.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-335.js new file mode 100644 index 0000000000..336477d225 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-335.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-335", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-335.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var beforeDelete = obj.hasOwnProperty("prop"); + delete obj.prop; + var afterDelete = obj.hasOwnProperty("prop"); + return beforeDelete && obj.prop === 2010 && afterDelete; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-336.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-336.js new file mode 100644 index 0000000000..6b2a7baa60 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-336.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-336", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-336.js", + + description: "ES5 Attributes - Success to update [[Writable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + writable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.writable === true && obj.prop === 2010 && desc2.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-337.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-337.js new file mode 100644 index 0000000000..0302626b9d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-337.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: "15.2.3.6-4-337", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-337.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + enumerable: false + }); + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return propertyDefineCorrect && desc1.enumerable === true && obj.prop === 2010 && desc2.enumerable === true && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-338.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-338.js new file mode 100644 index 0000000000..25f66e2e81 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-338.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-338", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-338.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return propertyDefineCorrect && desc1.configurable === false && obj.prop === 2010 && desc2.configurable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-339.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-339.js new file mode 100644 index 0000000000..cfaad1977f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-339.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-339", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-339.js", + + description: "ES5 Attributes - fail to update the data property ([[Writable]] is true, [[Enumerable]] is true, [[Configurable]] is false) to an accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + function getFunc() { + return 20; + } + try { + Object.defineProperty(obj, "prop", { + get: getFunc + }); + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return propertyDefineCorrect && desc1.value === 2010 && obj.prop === 2010 && typeof desc2.get === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-34.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-34.js new file mode 100644 index 0000000000..e44c5e4059 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-34.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-34", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-34.js", + + description: "Object.defineProperty - 'O' is an Array object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var arrObj = []; + + Object.defineProperty(arrObj, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(arrObj, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && arrObj.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-340.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-340.js new file mode 100644 index 0000000000..f3b4b19c99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-340.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-340", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-340.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is true) is writable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = (obj.prop === 2010); + obj.prop = 1001; + + return propertyDefineCorrect && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-341.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-341.js new file mode 100644 index 0000000000..72c1bc8764 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-341.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-341", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-341.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is true) is unenumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p in obj) { + if (p === "prop") { + return false; + } + } + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-342.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-342.js new file mode 100644 index 0000000000..ddbea1134e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-342.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-342", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-342.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: true + }); + var beforeDelete = obj.hasOwnProperty("prop"); + delete obj.prop; + var afterDelete = obj.hasOwnProperty("prop"); + return beforeDelete && !afterDelete; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-343.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-343.js new file mode 100644 index 0000000000..7afa687297 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-343.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-343", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-343.js", + + description: "ES5 Attributes - success to update [[Writable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + writable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.writable === true && obj.prop === 2010 && desc2.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-344.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-344.js new file mode 100644 index 0000000000..723fea49b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-344.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-344", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-344.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + enumerable: true + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.enumerable === false && obj.prop === 2010 && desc2.enumerable === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-345.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-345.js new file mode 100644 index 0000000000..af77089fe0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-345.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-345", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-345.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.configurable === true && obj.prop === 2010 && desc2.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-346.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-346.js new file mode 100644 index 0000000000..1c20bdaf09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-346.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-346", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-346.js", + + description: "ES5 Attributes - success to update the data property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is true) to an accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + function getFunc() { + return 20; + } + Object.defineProperty(obj, "prop", { + get: getFunc + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("value") && desc2.hasOwnProperty("get"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-347.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-347.js new file mode 100644 index 0000000000..a9ccaf405e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-347.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-347", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-347.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is false) is writable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = (obj.prop === 2010); + obj.prop = 1001; + + return propertyDefineCorrect && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-348.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-348.js new file mode 100644 index 0000000000..53289a1b67 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-348.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-348", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-348.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is false) is unenumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p in obj) { + if (p === "prop") { + return false; + } + } + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-349.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-349.js new file mode 100644 index 0000000000..350fe10e11 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-349.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-349", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-349.js", + + description: "ES5 Attributes - property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: false + }); + var beforeDelete = obj.hasOwnProperty("prop"); + delete obj.prop; + var afterDelete = obj.hasOwnProperty("prop"); + return beforeDelete && obj.prop === 2010 && afterDelete; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-35.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-35.js new file mode 100644 index 0000000000..caa9cb23fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-35.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-35", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-35.js", + + description: "Object.defineProperty - 'O' is a String object which implements its own [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var str = new String("abc"); + + Object.defineProperty(str, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(str, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && str.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-350.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-350.js new file mode 100644 index 0000000000..74c8739360 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-350.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-350", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-350.js", + + description: "ES5 Attributes - fail to update [[Writable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + writable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.writable === true && obj.prop === 2010 && desc2.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-351.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-351.js new file mode 100644 index 0000000000..4cf8e8da5f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-351.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: "15.2.3.6-4-351", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-351.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + enumerable: true + }); + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return propertyDefineCorrect && desc1.enumerable === false && obj.prop === 2010 && desc2.enumerable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-352.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-352.js new file mode 100644 index 0000000000..94c841991c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-352.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: "15.2.3.6-4-352", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-352.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of data property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return propertyDefineCorrect && desc1.configurable === false && obj.prop === 2010 && desc2.configurable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-353.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-353.js new file mode 100644 index 0000000000..777cd046b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-353.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-353", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-353.js", + + description: "ES5 Attributes - fail to update the data property ([[Writable]] is true, [[Enumerable]] is false, [[Configurable]] is false) to an accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: true, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + function getFunc() { + return 20; + } + try { + Object.defineProperty(obj, "prop", { + get: getFunc + }); + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return propertyDefineCorrect && desc1.value === 2010 && obj.prop === 2010 && typeof desc2.get === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-1.js new file mode 100644 index 0000000000..7b85f7fdf0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-1.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-354-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-1.js", + + description: "Object.defineProperty will update [[Value]] attribute of named property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is an Object object (8.12.9 step - Note)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "property", { + value: 1002 + }); + + return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-10.js new file mode 100644 index 0000000000..5508c71aa7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-10.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-354-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-10.js", + + description: "Object.defineProperty will update [[Value]] attribute of indexed property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is an Object object (8.12.9 step - Note)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "0", { + value: 1002 + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-11.js new file mode 100644 index 0000000000..d2819ce348 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-11.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-354-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-11.js", + + description: "Object.defineProperty will update [[Value]] attribute of named property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'A' is an Array object (8.12.9 step - Note)", + + test: function testcase() { + + var obj = []; + + Object.defineProperty(obj, "prop", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "prop", { + value: 1002 + }); + + return dataPropertyAttributesAreCorrect(obj, "prop", 1002, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-12.js new file mode 100644 index 0000000000..dd7e4259b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-12.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-354-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-12.js", + + description: "Object.defineProperty will update [[Value]] attribute of indexed property successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is an Arguments object (8.12.9 - step Note)", + + test: function testcase() { + + var obj = (function () { + return arguments; + }()); + + Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "0", { + value: 1002 + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-15.js new file mode 100644 index 0000000000..f99f3ea75d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-15.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-354-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-15.js", + + description: "Object.defineProperty - Named property 'P' with attributes [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true is non-writable using simple assignment, 'A' is an Array object", + + test: function testcase() { + var obj = []; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var verifyValue = (obj.prop === 2010); + obj.prop = 1001; + + return verifyValue && obj.prop === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-16.js new file mode 100644 index 0000000000..38df9bb039 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-16.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-354-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-16.js", + + description: "ES5 Attributes - property 'P' is an indexed data property with attributes [[Writable]]: false, [[Enumerable]]: true, [[Configurable]] : true) is non-writable using simple assignment, 'O' is an Arguments object", + + test: function testcase() { + var obj = (function () { + return arguments; + }()); + + Object.defineProperty(obj, "0", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var valueVerify = (obj[0] === 2010); + obj[0] = 1001; + + return valueVerify && obj[0] === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-2.js new file mode 100644 index 0000000000..931a79a8be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-2.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-354-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-2.js", + + description: "Object.defineProperty will update [[Value]] attribute of indexed property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'A' is an Array object (8.12.9 step - Note)", + + test: function testcase() { + + var obj = []; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "0", { + value: 1002 + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-3.js new file mode 100644 index 0000000000..0b996feb67 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-3.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-354-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-3.js", + + description: "Object.defineProperty will update [[Value]] attribute successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is an Arguments object (8.12.9 - step Note)", + + test: function testcase() { + + var obj = (function () { + return arguments; + }()); + + Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "property", { + value: 1002 + }); + + return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-4.js new file mode 100644 index 0000000000..a817b8713f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-4.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-354-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-4.js", + + description: "Object.defineProperty will update [[Value]] attribute successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false, 'O' is the global object (8.12.9 - step Note)", + + test: function testcase() { + + var obj = fnGlobalObject(); + + try { + Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "property", { + value: 1002 + }); + + return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true); + } finally { + delete obj.property; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-6.js new file mode 100644 index 0000000000..2c0577e94b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-6.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-354-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-6.js", + + description: "Object.defineProperty - Indexed property 'P' with attributes [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true is non-writable using simple assignment, 'A' is an Array object", + + test: function testcase() { + var obj = []; + + Object.defineProperty(obj, "0", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var verifyValue = (obj[0] === 2010); + obj[0] = 1001; + + return verifyValue && obj[0] === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-7.js new file mode 100644 index 0000000000..fe2fa3c4bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-7.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-354-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-7.js", + + description: "ES5 Attributes - property 'P' with attributes [[Writable]]: false, [[Enumerable]]: true, [[Configurable]] : true) is non-writable using simple assignment, 'O' is an Arguments object", + + test: function testcase() { + var obj = (function () { + return arguments; + }()); + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var valueVerify = (obj.prop === 2010); + obj.prop = 1001; + + return valueVerify && obj.prop === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-8.js new file mode 100644 index 0000000000..2f3ba11b15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-8.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-354-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354-8.js", + + description: "ES5 Attributes - property 'P' with attributes [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true is non-writable using simple assignment, 'O' is the global object", + + test: function testcase() { + var obj = fnGlobalObject(); + try { + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var valueVerify = (obj.prop === 2010); + obj.prop = 1001; + + return valueVerify && obj.prop === 2010; + } finally { + delete obj.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354.js new file mode 100644 index 0000000000..5bc03b0c8d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-354", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-354.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is true) is unwritable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = (obj.prop === 2010); + obj.prop = 1001; + + return propertyDefineCorrect && obj.prop === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-355.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-355.js new file mode 100644 index 0000000000..26f60beb52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-355.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-355", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-355.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is true) is enumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var property in obj) { + if (property === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-356.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-356.js new file mode 100644 index 0000000000..379c641940 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-356.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-356", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-356.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var beforeDelete = obj.hasOwnProperty("prop"); + delete obj.prop; + var afterDelete = obj.hasOwnProperty("prop"); + return beforeDelete && !afterDelete; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-357.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-357.js new file mode 100644 index 0000000000..ede3a02e35 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-357.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-357", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-357.js", + + description: "ES5 Attributes - success to update [[Writable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + writable: true + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.writable === false && obj.prop === 2010 && desc2.writable === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-358.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-358.js new file mode 100644 index 0000000000..ffc6213529 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-358.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-358", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-358.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + enumerable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.enumerable === true && obj.prop === 2010 && desc2.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-359.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-359.js new file mode 100644 index 0000000000..67fc8a2120 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-359.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-359", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-359.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.configurable === true && obj.prop === 2010 && desc2.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-36.js new file mode 100644 index 0000000000..65b69686bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-36.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-36", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-36.js", + + description: "Object.defineProperty - 'O' is a Boolean object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var obj = new Boolean(true); + + Object.defineProperty(obj, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && obj.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-360.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-360.js new file mode 100644 index 0000000000..fc523e55b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-360.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-360", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-360.js", + + description: "ES5 Attributes - success to update the data property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is true) to an accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + function getFunc() { + return 20; + } + Object.defineProperty(obj, "prop", { + get: getFunc + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("value") && desc2.hasOwnProperty("get"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-361.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-361.js new file mode 100644 index 0000000000..1347d22253 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-361.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-361", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-361.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is false) is unwritable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = (obj.prop === 2010); + obj.prop = 1001; + + return propertyDefineCorrect && obj.prop === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-362.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-362.js new file mode 100644 index 0000000000..90ccf1ac13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-362.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-362", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-362.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is false) is enumerable", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var property in obj) { + if (property === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-363.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-363.js new file mode 100644 index 0000000000..f712ef2c17 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-363.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-363", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-363.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: false + }); + var beforeDelete = obj.hasOwnProperty("prop"); + delete obj.prop; + var afterDelete = obj.hasOwnProperty("prop"); + return beforeDelete && obj.prop === 2010 && afterDelete; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-364.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-364.js new file mode 100644 index 0000000000..83b6fdbb63 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-364.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: "15.2.3.6-4-364", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-364.js", + + description: "ES5 Attributes - fail to update [[Writable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + try { + Object.defineProperty(obj, "prop", { + writable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.writable === false && obj.prop === 2010 && desc2.writable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-365.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-365.js new file mode 100644 index 0000000000..37f5dd8f15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-365.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: "15.2.3.6-4-365", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-365.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + try { + Object.defineProperty(obj, "prop", { + enumerable: false + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.enumerable === true && obj.prop === 2010 && desc2.enumerable === true && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-366.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-366.js new file mode 100644 index 0000000000..5c0dbc5c8b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-366.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: "15.2.3.6-4-366", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-366.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.configurable === false && obj.prop === 2010 && desc2.configurable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-367.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-367.js new file mode 100644 index 0000000000..e67231c017 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-367.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-367", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-367.js", + + description: "ES5 Attributes - fail to update the data property ([[Writable]] is false, [[Enumerable]] is true, [[Configurable]] is false) to an accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: true, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + function getFunc() { + return 20; + } + try { + Object.defineProperty(obj, "prop", { + get: getFunc + }); + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return propertyDefineCorrect && desc1.value === 2010 && obj.prop === 2010 && typeof desc2.get === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-368.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-368.js new file mode 100644 index 0000000000..527f3e5df3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-368.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-368", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-368.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is true) is unwritable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = (obj.prop === 2010); + obj.prop = 1001; + + return propertyDefineCorrect && obj.prop === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-369.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-369.js new file mode 100644 index 0000000000..df4a8b5724 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-369.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-369", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-369.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is true) is unenumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p in obj) { + if (p === "prop") { + return false; + } + } + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-37.js new file mode 100644 index 0000000000..918fd4ca59 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-37.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-37", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-37.js", + + description: "Object.defineProperty - 'O' is a Number object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var obj = new Number(-2); + + Object.defineProperty(obj, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && obj.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-370.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-370.js new file mode 100644 index 0000000000..95a35c42b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-370.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-370", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-370.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: true + }); + var beforeDelete = obj.hasOwnProperty("prop"); + delete obj.prop; + var afterDelete = obj.hasOwnProperty("prop"); + return beforeDelete && !afterDelete; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-371.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-371.js new file mode 100644 index 0000000000..9e623abced --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-371.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-371", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-371.js", + + description: "ES5 Attributes - success to update [[Writable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + writable: true + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.writable === false && obj.prop === 2010 && desc2.writable === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-372.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-372.js new file mode 100644 index 0000000000..9ff06ee28a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-372.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-372", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-372.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + enumerable: true + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.enumerable === false && obj.prop === 2010 && desc2.enumerable === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-373.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-373.js new file mode 100644 index 0000000000..a68c09963a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-373.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-373", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-373.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: true + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.configurable === true && obj.prop === 2010 && desc2.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-374.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-374.js new file mode 100644 index 0000000000..3cb68543aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-374.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-374", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-374.js", + + description: "ES5 Attributes - success to update the data property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is true) to an accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + function getFunc() { + return 20; + } + Object.defineProperty(obj, "prop", { + get: getFunc + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("value") && desc2.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-375.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-375.js new file mode 100644 index 0000000000..efcb02fa1e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-375.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-375", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-375.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is false) is unwritable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = (obj.prop === 2010); + obj.prop = 1001; + + return propertyDefineCorrect && obj.prop === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-376.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-376.js new file mode 100644 index 0000000000..190907db9f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-376.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-376", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-376.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is false) is unenumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p in obj) { + if (p === "prop") { + return false; + } + } + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-377.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-377.js new file mode 100644 index 0000000000..5194bb079e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-377.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-377", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-377.js", + + description: "ES5 Attributes - property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: false + }); + var beforeDelete = obj.hasOwnProperty("prop"); + delete obj.prop; + var afterDelete = obj.hasOwnProperty("prop"); + return beforeDelete && obj.prop === 2010 && afterDelete; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-378.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-378.js new file mode 100644 index 0000000000..b9c8913c07 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-378.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-378", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-378.js", + + description: "ES5 Attributes - fail to update [[Writable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + writable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.writable === false && obj.prop === 2010 && desc2.writable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-379.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-379.js new file mode 100644 index 0000000000..1fc7e5947c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-379.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: "15.2.3.6-4-379", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-379.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + try { + Object.defineProperty(obj, "prop", { + enumerable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.enumerable === false && obj.prop === 2010 && desc2.enumerable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-38.js new file mode 100644 index 0000000000..b1ce693b9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-38.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-38", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-38.js", + + description: "Object.defineProperty - 'O' is the Math object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + try { + Object.defineProperty(Math, "foo", { + value: 12, + configurable: true + }); + + return dataPropertyAttributesAreCorrect(Math, "foo", 12, false, false, true); + } finally { + delete Math.foo; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-380.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-380.js new file mode 100644 index 0000000000..9dab334028 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-380.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-380", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-380.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of data property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc1.configurable === false && obj.prop === 2010 && desc2.configurable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-381.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-381.js new file mode 100644 index 0000000000..5cfeebdf7a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-381.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-381", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-381.js", + + description: "ES5 Attributes - fail to update the data property ([[Writable]] is false, [[Enumerable]] is false, [[Configurable]] is false) to an accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 2010, + writable: false, + enumerable: false, + configurable: false + }); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + function getFunc() { + return 20; + } + try { + Object.defineProperty(obj, "prop", { + get: getFunc + }); + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return propertyDefineCorrect && desc1.value === 2010 && obj.prop === 2010 && typeof desc2.get === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-382.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-382.js new file mode 100644 index 0000000000..80a4499044 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-382.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: "15.2.3.6-4-382", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-382.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a number", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === 1001 && desc.value === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-383.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-383.js new file mode 100644 index 0000000000..bd1cf6fc65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-383.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: "15.2.3.6-4-383", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-383.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a string", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: "ThisIsAString" + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === "ThisIsAString" && desc.value === "ThisIsAString"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-384.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-384.js new file mode 100644 index 0000000000..adda7d9a62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-384.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: "15.2.3.6-4-384", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-384.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a boolean", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: false + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === false && desc.value === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-385.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-385.js new file mode 100644 index 0000000000..0ab958cfcc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-385.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-385", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-385.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a generic object", + + test: function testcase() { + var obj = {}; + var tempObj = { testproperty: 100 }; + + Object.defineProperty(obj, "prop", { + value: tempObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === tempObj && desc.value === tempObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-386.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-386.js new file mode 100644 index 0000000000..6be5b0b655 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-386.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-386", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-386.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is an Array object", + + test: function testcase() { + var obj = {}; + var arrObj = []; + + Object.defineProperty(obj, "prop", { + value: arrObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === arrObj && desc.value === arrObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-387.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-387.js new file mode 100644 index 0000000000..5c15611517 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-387.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-387", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-387.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a String object", + + test: function testcase() { + var obj = {}; + var strObj = new String(); + + Object.defineProperty(obj, "prop", { + value: strObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === strObj && desc.value === strObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-388.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-388.js new file mode 100644 index 0000000000..ca289cb88f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-388.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-388", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-388.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a Number object", + + test: function testcase() { + var obj = {}; + var numObj = new Number(); + + Object.defineProperty(obj, "prop", { + value: numObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === numObj && desc.value === numObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-389.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-389.js new file mode 100644 index 0000000000..78683f8c31 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-389.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-389", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-389.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a Boolean Object", + + test: function testcase() { + var obj = {}; + var boolObj = new Boolean(); + + Object.defineProperty(obj, "prop", { + value: boolObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === boolObj && desc.value === boolObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-39.js new file mode 100644 index 0000000000..6198de9b7e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-39.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-39", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-39.js", + + description: "Object.defineProperty - 'O' is a Date object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var desc = new Date(); + + Object.defineProperty(desc, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(desc, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && desc.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-390.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-390.js new file mode 100644 index 0000000000..79f50352de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-390.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-390", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-390.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a Function object", + + test: function testcase() { + var obj = {}; + var funObj = function () { }; + + Object.defineProperty(obj, "prop", { + value: funObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === funObj && desc.value === funObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-391.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-391.js new file mode 100644 index 0000000000..ecfd622fe1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-391.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-391", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-391.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is an Error object", + + test: function testcase() { + var obj = {}; + var errObj = new Error(); + + Object.defineProperty(obj, "prop", { + value: errObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === errObj && desc.value === errObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-392.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-392.js new file mode 100644 index 0000000000..efae5d72bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-392.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-392", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-392.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a Date object", + + test: function testcase() { + var obj = {}; + var dateObj = new Date(); + + Object.defineProperty(obj, "prop", { + value: dateObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === dateObj && desc.value === dateObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-393.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-393.js new file mode 100644 index 0000000000..cd96857acd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-393.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-393", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-393.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is a RegExp object", + + test: function testcase() { + var obj = {}; + var regObj = new RegExp(); + + Object.defineProperty(obj, "prop", { + value: regObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === regObj && desc.value === regObj; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-394.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-394.js new file mode 100644 index 0000000000..07eddc97fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-394.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: "15.2.3.6-4-394", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-394.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: undefined + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && typeof obj.prop === "undefined" && typeof desc.value === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-395.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-395.js new file mode 100644 index 0000000000..cf7b731907 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-395.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: "15.2.3.6-4-395", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-395.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is null", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: null + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === null && desc.value === null; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-396.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-396.js new file mode 100644 index 0000000000..46b77ccf16 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-396.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: "15.2.3.6-4-396", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-396.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is NaN", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: NaN + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop !== obj.prop && desc.value !== desc.value; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-397.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-397.js new file mode 100644 index 0000000000..a90c629ac5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-397.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: "15.2.3.6-4-397", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-397.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is Infinity", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: Infinity + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === Infinity && desc.value === Infinity; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-398.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-398.js new file mode 100644 index 0000000000..c06bcd0fa0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-398.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: "15.2.3.6-4-398", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-398.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is -Infinity", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: -Infinity + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === -Infinity && desc.value === -Infinity; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-399.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-399.js new file mode 100644 index 0000000000..d2c9fa090c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-399.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: "15.2.3.6-4-399", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-399.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is the global object", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: fnGlobalObject() + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === fnGlobalObject() && desc.value === fnGlobalObject(); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-4.js new file mode 100644 index 0000000000..6c46128ad6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-4.js @@ -0,0 +1,52 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. For newly defined properties, step 4.a.1 of +[[DefineOwnProperty]] creates a data property if handed a generic desc. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-4", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-4.js", + +description: "Object.defineProperty defines a data property if given a generic desc(8.12.9 step 4.a.i)", + +test: function testcase() { + var o = {}; + + var desc = {}; + Object.defineProperty(o, "foo", desc); + + var propDesc = Object.getOwnPropertyDescriptor(o, "foo"); + if (propDesc.value === undefined && // this is the value that was set + propDesc.writable === false && // false by default + propDesc.enumerable === false && // false by default + propDesc.configurable === false) { // false by default + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-40.js new file mode 100644 index 0000000000..b23d26c312 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-40.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-40", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-40.js", + + description: "Object.defineProperty - 'O' is a RegExp object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var desc = new RegExp(); + + Object.defineProperty(desc, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(desc, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && desc.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-401.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-401.js new file mode 100644 index 0000000000..c647c10fc0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-401.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: "15.2.3.6-4-401", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-401.js", + + description: "ES5 Attributes - [[Value]] attribute of data property is the activex host object", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + value: ActiveXObject + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.prop === ActiveXObject && desc.value === ActiveXObject; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-402.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-402.js new file mode 100644 index 0000000000..2138ed982c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-402.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-402", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-402.js", + + description: "ES5 Attributes - [[Value]] attribute of inherited property of [[Prototype]] internal property is correct (String instance)", + + test: function testcase() { + try { + Object.defineProperty(String.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + var strObj = new String(); + + return !strObj.hasOwnProperty("prop") && strObj.prop === 1001; + } finally { + delete String.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-403.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-403.js new file mode 100644 index 0000000000..23e14d2bb4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-403.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-403", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-403.js", + + description: "ES5 Attributes - Successfully add a property to an object when the object's prototype has a property with same name and [[Writable]] attribute is set to true (Array instance)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + var arrObj = new Array(); + arrObj.prop = 1002; + + return arrObj.hasOwnProperty("prop") && arrObj.prop === 1002; + } finally { + delete Array.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-404.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-404.js new file mode 100644 index 0000000000..4d7e31c059 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-404.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: "15.2.3.6-4-404", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-404.js", + + description: "ES5 Attributes - Inherited property whose [[Enumerable]] attribute is set to true is enumerable (Boolean instance)", + + test: function testcase() { + try { + Object.defineProperty(Boolean.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + var boolObj = new Boolean(); + + var verifyEnumerable = false; + for (var p in boolObj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !boolObj.hasOwnProperty("prop") && verifyEnumerable; + } finally { + delete Boolean.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-405.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-405.js new file mode 100644 index 0000000000..1dc0bd6e9f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-405.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-405", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-405.js", + + description: "ES5 Attributes - Failed to add a property to an object when the object's object has a property with same name and [[Writable]] attribute is set to false (Number instance)", + + test: function testcase() { + try { + Object.defineProperty(Number.prototype, "prop", { + value: 1001, + writable: false, + enumerable: false, + configurable: true + }); + var numObj = new Number(); + numObj.prop = 1002; + + return !numObj.hasOwnProperty("prop") && numObj.prop === 1001; + } finally { + delete Number.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-406.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-406.js new file mode 100644 index 0000000000..63e10751b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-406.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: "15.2.3.6-4-406", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-406.js", + + description: "ES5 Attributes - Inherited property whose [[Enumerable]] attribute is set to false is unenumerable (Function instance)", + + test: function testcase() { + try { + Object.defineProperty(Function.prototype, "prop", { + value: 1001, + writable: false, + enumerable: false, + configurable: true + }); + var funObj = function () { }; + + var verifyEnumerable = false; + for (var p in funObj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !funObj.hasOwnProperty("prop") && !verifyEnumerable; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-407.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-407.js new file mode 100644 index 0000000000..9d1e326acb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-407.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-407", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-407.js", + + description: "ES5 Attributes - [[Value]] attribute of inherited property of [[Prototype]] internal property is correct (Error Instance)", + + test: function testcase() { + try { + Object.defineProperty(Error.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + var errObj = new Error(); + + return !errObj.hasOwnProperty("prop") && errObj.prop === 1001; + } finally { + delete Error.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-408.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-408.js new file mode 100644 index 0000000000..aee2870f1c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-408.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-408", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-408.js", + + description: "ES5 Attributes - Successfully add a property to an object when the object's prototype has a property with same name and [[Writable]] attribute is set to true (Date instance)", + + test: function testcase() { + try { + Object.defineProperty(Date.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + var dateObj = new Date(); + dateObj.prop = 1002; + + return dateObj.hasOwnProperty("prop") && dateObj.prop === 1002; + } finally { + delete Date.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-409.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-409.js new file mode 100644 index 0000000000..9de816a223 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-409.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: "15.2.3.6-4-409", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-409.js", + + description: "ES5 Attributes - Inherited property whose [[Enumerable]] attribute is set to false is enumerable (RegExp instance)", + + test: function testcase() { + try { + Object.defineProperty(RegExp.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + var regObj = new RegExp(); + + var verifyEnumerable = false; + for (var p in regObj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !regObj.hasOwnProperty("prop") && verifyEnumerable; + } finally { + delete RegExp.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-41.js new file mode 100644 index 0000000000..f912e83b9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-41.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-41", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-41.js", + + description: "Object.defineProperty - 'O' is the JSON object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + + try { + Object.defineProperty(JSON, "foo", { + value: 12, + configurable: true + }); + + return dataPropertyAttributesAreCorrect(JSON, "foo", 12, false, false, true); + } finally { + delete JSON.foo; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-410.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-410.js new file mode 100644 index 0000000000..fe16319b14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-410.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-410", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-410.js", + + description: "ES5 Attributes - Failed to add a property to an object when the object's prototype has a property with the same name and [[Writable]] set to false (JSON)", + + test: function testcase() { + try { + Object.defineProperty(Object.prototype, "prop", { + value: 1001, + writable: false, + enumerable: false, + configurable: true + }); + JSON.prop = 1002; + + return !JSON.hasOwnProperty("prop") && JSON.prop === 1001; + } finally { + delete Object.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-411.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-411.js new file mode 100644 index 0000000000..5edb035c23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-411.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-411", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-411.js", + + description: "ES5 Attributes - Inherited property whose [[Enumerable]] attribute is set to false is unenumerable (Math)", + + test: function testcase() { + try { + Object.defineProperty(Object.prototype, "prop", { + value: 1001, + writable: false, + enumerable: false, + configurable: true + }); + + var verifyEnumerable = false; + for (var p in Math) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !Math.hasOwnProperty("prop") && !verifyEnumerable; + } finally { + delete Object.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-412.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-412.js new file mode 100644 index 0000000000..99d8ca4e6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-412.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-412", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-412.js", + + description: "ES5 Attributes - [[Value]] field of inherited property of [[Prototype]] internal property is correct(Object.create)", + + test: function testcase() { + var appointment = {}; + + Object.defineProperty(appointment, "startTime", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + Object.defineProperty(appointment, "name", { + value: "NAME", + writable: true, + enumerable: true, + configurable: true + }); + + var meeting = Object.create(appointment); + Object.defineProperty(meeting, "conferenceCall", { + value: "In-person meeting", + writable: true, + enumerable: true, + configurable: true + }); + + var teamMeeting = Object.create(meeting); + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty('conferenceCall'); + + return hasOwnProperty && teamMeeting.name === "NAME" && + teamMeeting.startTime === 1001 && + teamMeeting.conferenceCall === "In-person meeting"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.create); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-413.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-413.js new file mode 100644 index 0000000000..4eafc1fde0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-413.js @@ -0,0 +1,71 @@ +/// 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: "15.2.3.6-4-413", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-413.js", + + description: "ES5 Attributes - Successfully add a property to an object when the object's prototype has a property with the same name and [[Writable]] set to true (Object.create)", + + test: function testcase() { + var appointment = {}; + + Object.defineProperty(appointment, "startTime", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + Object.defineProperty(appointment, "name", { + value: "NAME", + writable: true, + enumerable: true, + configurable: true + }); + + var meeting = Object.create(appointment); + Object.defineProperty(meeting, "conferenceCall", { + value: "In-person meeting", + writable: true, + enumerable: true, + configurable: true + }); + + var teamMeeting = Object.create(meeting); + teamMeeting.name = "Team Meeting"; + var dateObj = new Date("10/31/2010 08:00"); + teamMeeting.startTime = dateObj; + teamMeeting.conferenceCall = "4255551212"; + + var hasOwnProperty = teamMeeting.hasOwnProperty("name") && + teamMeeting.hasOwnProperty("startTime") && + teamMeeting.hasOwnProperty('conferenceCall'); + + return hasOwnProperty && teamMeeting.name === "Team Meeting" && + teamMeeting.startTime === dateObj && + teamMeeting.conferenceCall === "4255551212"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.create); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-414.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-414.js new file mode 100644 index 0000000000..a2e2375a4b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-414.js @@ -0,0 +1,80 @@ +/// 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: "15.2.3.6-4-414", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-414.js", + + description: "ES5 Attributes - Inherited property whose [[Enumerable]] attribute is set to true is enumerable (Object.create)", + + test: function testcase() { + var appointment = new Object(); + + Object.defineProperty(appointment, "startTime", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + Object.defineProperty(appointment, "name", { + value: "NAME", + writable: true, + enumerable: true, + configurable: true + }); + + var meeting = Object.create(appointment); + Object.defineProperty(meeting, "conferenceCall", { + value: "In-person meeting", + writable: true, + enumerable: true, + configurable: true + }); + + var teamMeeting = Object.create(meeting); + + var verifyTimeProp = false; + var verifyNameProp = false; + var verifyCallProp = false; + for (var p in teamMeeting) { + if (p === "startTime") { + verifyTimeProp = true; + } + if (p === "name") { + verifyNameProp = true; + } + if (p === "conferenceCall") { + verifyCallProp = true; + } + } + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty("conferenceCall"); + + return hasOwnProperty && verifyTimeProp && verifyNameProp && verifyCallProp; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.create); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-415.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-415.js new file mode 100644 index 0000000000..cd69200e0e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-415.js @@ -0,0 +1,71 @@ +/// 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: "15.2.3.6-4-415", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-415.js", + + description: "ES5 Attributes - Failed to add properties to an object when the object's prototype has properties with the same name and [[Writable]] set to false (Object.create)", + + test: function testcase() { + var appointment = new Object(); + + Object.defineProperty(appointment, "startTime", { + value: 1001, + writable: false, + enumerable: false, + configurable: true + }); + Object.defineProperty(appointment, "name", { + value: "NAME", + writable: false, + enumerable: false, + configurable: true + }); + + var meeting = Object.create(appointment); + Object.defineProperty(meeting, "conferenceCall", { + value: "In-person meeting", + writable: false, + enumerable: false, + configurable: true + }); + + var teamMeeting = Object.create(meeting); + teamMeeting.name = "Team Meeting"; + var dateObj = new Date("10/31/2010 08:00"); + teamMeeting.startTime = dateObj; + teamMeeting.conferenceCall = "4255551212"; + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty('conferenceCall'); + + return hasOwnProperty && teamMeeting.name === "NAME" && + teamMeeting.startTime === 1001 && + teamMeeting.conferenceCall === "In-person meeting"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.create); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-416.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-416.js new file mode 100644 index 0000000000..6305722d83 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-416.js @@ -0,0 +1,80 @@ +/// 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: "15.2.3.6-4-416", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-416.js", + + description: "ES5 Attributes - Inherited properties whose [[Enumerable]] attribute is set to false is unenumerable (Object.create)", + + test: function testcase() { + var appointment = {}; + + Object.defineProperty(appointment, "startTime", { + value: 1001, + writable: false, + enumerable: false, + configurable: true + }); + Object.defineProperty(appointment, "name", { + value: "NAME", + writable: false, + enumerable: false, + configurable: true + }); + + var meeting = Object.create(appointment); + Object.defineProperty(meeting, "conferenceCall", { + value: "In-person meeting", + writable: false, + enumerable: false, + configurable: true + }); + + var teamMeeting = Object.create(meeting); + + var verifyTimeProp = false; + var verifyNameProp = false; + var verifyCallProp = false; + for (var p in teamMeeting) { + if (p === "startTime") { + verifyTimeProp = true; + } + if (p === "name") { + verifyNameProp = true; + } + if (p === "conferenceCall") { + verifyCallProp = true; + } + } + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty("conferenceCall"); + + return hasOwnProperty && !verifyTimeProp && !verifyNameProp && !verifyCallProp; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.create); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-417.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-417.js new file mode 100644 index 0000000000..5777112f04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-417.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-417", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-417.js", + + description: "ES5 Attributes - [[Value]] attribute of inherited property of [[Prototype]] internal property is correct(Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + try { + Object.defineProperty(Function.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + var obj = foo.bind({}); + + return !obj.hasOwnProperty("prop") && obj.prop === 1001; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Function.prototype.bind); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-418.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-418.js new file mode 100644 index 0000000000..4e66bc6214 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-418.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-418", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-418.js", + + description: "ES5 Attributes - Successfully add a property to an object when the object's prototype has a property with the same name and [[Writable]] set to true (Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + try { + Object.defineProperty(Function.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + var obj = foo.bind({}); + obj.prop = 1002; + + return obj.hasOwnProperty("prop") && obj.prop === 1002; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Function.prototype.bind); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-419.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-419.js new file mode 100644 index 0000000000..c48e7241d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-419.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-419", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-419.js", + + description: "ES5 Attributes - Inherited property whose [[Enumerable]] attribute is set to true is enumerable (Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + try { + Object.defineProperty(Function.prototype, "prop", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + var obj = foo.bind({}); + var verifyEnumerable = false; + for (var p in obj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !obj.hasOwnProperty("prop") && verifyEnumerable; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Function.prototype.bind); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-42.js new file mode 100644 index 0000000000..1079915af7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-42.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-42", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-42.js", + + description: "Object.defineProperty - 'O' is an Error object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var desc = new Error(); + + Object.defineProperty(desc, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(desc, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && desc.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-420.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-420.js new file mode 100644 index 0000000000..4a0e55470b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-420.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-420", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-420.js", + + description: "ES5 Attributes - Failed to add a property to an object when the object's prototype has a property with the same name and [[Writable]] set to false(Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + try { + Object.defineProperty(Function.prototype, "prop", { + value: 1001, + writable: false, + enumerable: false, + configurable: true + }); + + var obj = foo.bind({}); + obj.prop = 1002; + + return !obj.hasOwnProperty("prop") && obj.prop === 1001; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Function.prototype.bind); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-421.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-421.js new file mode 100644 index 0000000000..64afa0a7ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-421.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-421", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-421.js", + + description: "ES5 Attributes - Inherited property whose [[Enumerable]] attribute is set to false is unenumerable (Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + try { + Object.defineProperty(Function.prototype, "prop", { + value: 1001, + writable: false, + enumerable: false, + configurable: true + }); + + var obj = foo.bind({}); + var verifyEnumerable = false; + for (var p in obj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !obj.hasOwnProperty("prop") && !verifyEnumerable; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Function.prototype.bind); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-422.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-422.js new file mode 100644 index 0000000000..e2dfb823d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-422.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-422", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-422.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-423.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-423.js new file mode 100644 index 0000000000..5c58294c9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-423.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-423", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-423.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-424.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-424.js new file mode 100644 index 0000000000..f4484d9941 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-424.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-424", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-424.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) is enumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-425.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-425.js new file mode 100644 index 0000000000..1e8788d4dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-425.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-425", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-425.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === true && !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-426.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-426.js new file mode 100644 index 0000000000..043062e594 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-426.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-426", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-426.js", + + description: "ES5 Attributes - success to update [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + + var result1 = typeof obj.prop === "undefined"; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var result2 = obj.prop === 1001; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && typeof desc1.get === "undefined" && desc2.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-427.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-427.js new file mode 100644 index 0000000000..1c015b1465 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-427.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-427", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-427.js", + + description: "ES5 Attributes - success to update [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc1.set === "undefined" && desc2.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-428.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-428.js new file mode 100644 index 0000000000..7b41569c2c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-428.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-428", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-428.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + Object.defineProperty(obj, "prop", { + enumerable: false + }); + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return result1 && !result2 && desc1.enumerable === true && desc2.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-429.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-429.js new file mode 100644 index 0000000000..222aec0601 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-429.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-429", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-429.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-43.js new file mode 100644 index 0000000000..8b9057e18a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-43.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-43", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-43.js", + + description: "Object.defineProperty - 'O' is an Arguments object which implements its own [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + var argObj = (function () { return arguments; })(); + + Object.defineProperty(argObj, "foo", { + value: 12, + configurable: false + }); + + try { + Object.defineProperty(argObj, "foo", { + value: 11, + configurable: true + }); + return false; + } catch (e) { + return e instanceof TypeError && argObj.foo === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-430.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-430.js new file mode 100644 index 0000000000..19977843c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-430.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-430", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-430.js", + + description: "ES5 Attributes - success to update the accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to a data property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-431.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-431.js new file mode 100644 index 0000000000..d3e81a4d1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-431.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-431", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-431.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-432.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-432.js new file mode 100644 index 0000000000..6c6e9dbf63 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-432.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-432", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-432.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-433.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-433.js new file mode 100644 index 0000000000..b73cf69057 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-433.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-433", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-433.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) is enumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-434.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-434.js new file mode 100644 index 0000000000..ddc99e976d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-434.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-434", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-434.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-435.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-435.js new file mode 100644 index 0000000000..24fffc2bfe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-435.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-435", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-435.js", + + description: "ES5 Attributes - fail to update [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + + var result1 = typeof obj.prop === "undefined"; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + return false; + } catch (e) { + var result2 = typeof obj.prop === "undefined"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return result1 && result2 && typeof desc1.get === "undefined" && typeof desc2.get === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-436.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-436.js new file mode 100644 index 0000000000..d557f2d16f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-436.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-436", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-436.js", + + description: "ES5 Attributes - fail to update [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return typeof desc1.set === "undefined" && typeof desc2.set === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-437.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-437.js new file mode 100644 index 0000000000..c9ffbb3b98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-437.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-437", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-437.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + try { + Object.defineProperty(obj, "prop", { + enumerable: false + }); + + return false; + } catch (e) { + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return result1 && result2 && desc1.enumerable === true && desc2.enumerable === true && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-438.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-438.js new file mode 100644 index 0000000000..bca78b8a3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-438.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-438", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-438.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-439.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-439.js new file mode 100644 index 0000000000..ec7114891a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-439.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: "15.2.3.6-4-439", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-439.js", + + description: "ES5 Attributes - fail to update the accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to a data property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: true, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-440.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-440.js new file mode 100644 index 0000000000..2f52c49bee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-440.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-440", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-440.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-441.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-441.js new file mode 100644 index 0000000000..fdb889282c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-441.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-441", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-441.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-442.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-442.js new file mode 100644 index 0000000000..fc13071f4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-442.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-442", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-442.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) is unenumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return false; + } + } + + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-443.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-443.js new file mode 100644 index 0000000000..0c6748017e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-443.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-443", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-443.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === true && !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-444.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-444.js new file mode 100644 index 0000000000..539edbd1ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-444.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-444", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-444.js", + + description: "ES5 Attributes - success to update [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + + var result1 = typeof obj.prop === "undefined"; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var result2 = obj.prop === 1001; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && typeof desc1.get === "undefined" && desc2.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-445.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-445.js new file mode 100644 index 0000000000..9798744516 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-445.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-445", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-445.js", + + description: "ES5 Attributes - success to update [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + obj.prop = "overrideData"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return typeof desc1.set === "undefined" && propertyDefineCorrect && desc2.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-446.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-446.js new file mode 100644 index 0000000000..da6ab283fb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-446.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-446", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-446.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + Object.defineProperty(obj, "prop", { + enumerable: true + }); + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return !result1 && result2 && desc1.enumerable === false && desc2.enumerable === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-447.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-447.js new file mode 100644 index 0000000000..88a541b05b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-447.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-447", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-447.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-448.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-448.js new file mode 100644 index 0000000000..6cdf878e66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-448.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-448", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-448.js", + + description: "ES5 Attributes - success to update the accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to a data property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-449.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-449.js new file mode 100644 index 0000000000..85b4b79841 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-449.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-449", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-449.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-45.js new file mode 100644 index 0000000000..5675d3b28d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-45.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-45", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-45.js", + + description: "Object.defineProperty - 'O' is the global object that uses Object's [[GetOwnProperty]] method to access the 'name' property (8.12.9 step 1)", + + test: function testcase() { + try { + Object.defineProperty(fnGlobalObject(), "foo", { + value: 12, + configurable: true + }); + + return dataPropertyAttributesAreCorrect(fnGlobalObject(), "foo", 12, false, false, true); + } finally { + delete fnGlobalObject().foo; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-450.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-450.js new file mode 100644 index 0000000000..e2e8d02370 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-450.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-450", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-450.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) is undefined", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-451.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-451.js new file mode 100644 index 0000000000..b8f42f52cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-451.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-451", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-451.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) is unenumerable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return false; + } + } + + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-452.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-452.js new file mode 100644 index 0000000000..93f6b23d9f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-452.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-452", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-452.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-453.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-453.js new file mode 100644 index 0000000000..e199551b8e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-453.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-453", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-453.js", + + description: "ES5 Attributes - fail to update [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + + var result1 = typeof obj.prop === "undefined"; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + return false; + } catch (e) { + var result2 = typeof obj.prop === "undefined"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return result1 && result2 && typeof desc1.get === "undefined" && typeof desc2.get === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-454.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-454.js new file mode 100644 index 0000000000..a7962f4fe0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-454.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-454", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-454.js", + + description: "ES5 Attributes - fail to update [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + return typeof desc1.set === "undefined" && typeof desc2.set === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-455.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-455.js new file mode 100644 index 0000000000..f615af06b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-455.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-455", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-455.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + try { + Object.defineProperty(obj, "prop", { + enumerable: true + }); + + return false; + } catch (e) { + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return !result1 && !result2 && desc1.enumerable === false && desc2.enumerable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-456.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-456.js new file mode 100644 index 0000000000..6b89d8d194 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-456.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-456", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-456.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-457.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-457.js new file mode 100644 index 0000000000..8930f93195 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-457.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: "15.2.3.6-4-457", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-457.js", + + description: "ES5 Attributes - fail to update the accessor property ([[Get]] is undefined, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to a data property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: undefined, + enumerable: false, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-458.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-458.js new file mode 100644 index 0000000000..2b9d43c04d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-458.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-458", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-458.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) is undefined", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-459.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-459.js new file mode 100644 index 0000000000..af0d3c0abe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-459.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-459", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-459.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) is the expected function", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-46.js new file mode 100644 index 0000000000..3c7f805f05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-46.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-46", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-46.js", + + description: "Object.defineProperty - 'name' is defined as data property if 'name' property doesn't exist in 'O' and 'desc' is generic descriptor (8.12.9 step 4.a)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + enumerable: true + }); + + var isEnumerable = false; + for (var item in obj) { + if (obj.hasOwnProperty(item) && item === "property") { + isEnumerable = true; + } + } + + return obj.hasOwnProperty("property") && isEnumerable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-460.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-460.js new file mode 100644 index 0000000000..889dc00dc3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-460.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-460", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-460.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) is enumerable", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-461.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-461.js new file mode 100644 index 0000000000..fba7de21e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-461.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-461", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-461.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === true && !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-462.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-462.js new file mode 100644 index 0000000000..9a2bd4c621 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-462.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-462", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-462.js", + + description: "ES5 Attributes - success to update [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + + var result1 = typeof obj.prop === "undefined"; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var result2 = obj.prop === 1001; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && typeof desc1.get === "undefined" && desc2.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-463.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-463.js new file mode 100644 index 0000000000..30bfd7d3f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-463.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-463", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-463.js", + + description: "ES5 Attributes - success to update [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + set: undefined + }); + + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.set === setFunc && typeof desc2.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-464.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-464.js new file mode 100644 index 0000000000..1ff75d08c7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-464.js @@ -0,0 +1,68 @@ +/// 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: "15.2.3.6-4-464", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-464.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + Object.defineProperty(obj, "prop", { + enumerable: false + }); + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return result1 && !result2 && desc1.enumerable === true && desc2.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-465.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-465.js new file mode 100644 index 0000000000..cebb714070 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-465.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-465", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-465.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-466.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-466.js new file mode 100644 index 0000000000..de11fb37f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-466.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: "15.2.3.6-4-466", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-466.js", + + description: "ES5 Attributes - success to update the accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to a data property", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-467.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-467.js new file mode 100644 index 0000000000..58b10e5149 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-467.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-467", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-467.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) is undefined", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-468.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-468.js new file mode 100644 index 0000000000..d0594aab46 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-468.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-468", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-468.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) is the expected function", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-469.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-469.js new file mode 100644 index 0000000000..e42e7cefab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-469.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-469", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-469.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) is enumerable", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-47.js new file mode 100644 index 0000000000..f5dd570f93 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-47.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-47", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-47.js", + + description: "Object.defineProperty - 'name' property doesn't exist in 'O', [[Value]] of 'name' property is set as undefined if it is absent in data descriptor 'desc' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + writable: true, + enumerable: true, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "property", undefined, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-470.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-470.js new file mode 100644 index 0000000000..61540f40de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-470.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-470", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-470.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-471.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-471.js new file mode 100644 index 0000000000..be5be629dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-471.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-471", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-471.js", + + description: "ES5 Attributes - fail to update [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + + var result1 = typeof obj.prop === "undefined"; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + return false; + } catch (e) { + var result2 = typeof obj.prop === "undefined"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && typeof desc1.get === "undefined" && typeof desc2.get === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-472.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-472.js new file mode 100644 index 0000000000..f9d6ac5208 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-472.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-472", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-472.js", + + description: "ES5 Attributes - fail to update [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + set: undefined + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.set === setFunc && desc2.set === setFunc && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-473.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-473.js new file mode 100644 index 0000000000..75c9a1958b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-473.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: "15.2.3.6-4-473", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-473.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + try { + Object.defineProperty(obj, "prop", { + enumerable: false + }); + + return false; + } catch (e) { + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return result1 && result2 && desc1.enumerable === true && desc2.enumerable === true && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-474.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-474.js new file mode 100644 index 0000000000..1fb8756dab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-474.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-474", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-474.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-475.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-475.js new file mode 100644 index 0000000000..876b637fe2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-475.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-475", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-475.js", + + description: "ES5 Attributes - fail to update the accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to a data property", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: true, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-476.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-476.js new file mode 100644 index 0000000000..0b2cdfc5ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-476.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-476", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-476.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) is undefined", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-477.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-477.js new file mode 100644 index 0000000000..5213303591 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-477.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-477", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-477.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) is the expected function", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-478.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-478.js new file mode 100644 index 0000000000..cf41b73a0e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-478.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-478", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-478.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) is unenumerable", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return false; + } + } + + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-479.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-479.js new file mode 100644 index 0000000000..62ca5dcc69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-479.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-479", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-479.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === true && !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-48.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-48.js new file mode 100644 index 0000000000..10cd6a2e36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-48.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-48", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-48.js", + + description: "Object.defineProperty - 'name' property doesn't exist in 'O', test [[Writable]] of 'name' property of 'Attributes' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + value: 1001, + enumerable: true, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "property", 1001, false, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-480.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-480.js new file mode 100644 index 0000000000..1bb32abbf9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-480.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-480", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-480.js", + + description: "ES5 Attributes - success to update [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + + var result1 = typeof obj.prop === "undefined"; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var result2 = obj.prop === 1001; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && typeof desc1.get === "undefined" && desc2.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-481.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-481.js new file mode 100644 index 0000000000..4669b10798 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-481.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-481", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-481.js", + + description: "ES5 Attributes - success to update [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + set: undefined + }); + + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.set === setFunc && typeof desc2.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-482.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-482.js new file mode 100644 index 0000000000..f6300d3052 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-482.js @@ -0,0 +1,68 @@ +/// 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: "15.2.3.6-4-482", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-482.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + Object.defineProperty(obj, "prop", { + enumerable: true + }); + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return !result1 && result2 && desc1.enumerable === false && desc2.enumerable === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-483.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-483.js new file mode 100644 index 0000000000..3c080d4491 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-483.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-483", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-483.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-484.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-484.js new file mode 100644 index 0000000000..4638f0dc29 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-484.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: "15.2.3.6-4-484", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-484.js", + + description: "ES5 Attributes - success to update the accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to a data property", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-485.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-485.js new file mode 100644 index 0000000000..82d2eef301 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-485.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-485", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-485.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) is undefined", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-486.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-486.js new file mode 100644 index 0000000000..daf872c374 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-486.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-486", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-486.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) is the expected function", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-487.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-487.js new file mode 100644 index 0000000000..0301374c36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-487.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-487", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-487.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) is unenumerable", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return false; + } + } + + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-488.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-488.js new file mode 100644 index 0000000000..63e3e00419 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-488.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-488", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-488.js", + + description: "ES5 Attributes - property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-489.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-489.js new file mode 100644 index 0000000000..d0f12720f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-489.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-489", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-489.js", + + description: "ES5 Attributes - fail to update [[Get]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + + var result1 = typeof obj.prop === "undefined"; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + return false; + } catch (e) { + var result2 = typeof obj.prop === "undefined"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && typeof desc1.get === "undefined" && typeof desc2.get === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-49.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-49.js new file mode 100644 index 0000000000..39ef901cd2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-49.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: "15.2.3.6-4-49", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-49.js", + + description: "Object.defineProperty - 'name' property doesn't exist in 'O', test [[Enumerable]] of 'name' property of 'Attributes' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + value: 1001, + writable: true, + configurable: true + }); + return dataPropertyAttributesAreCorrect(obj, "property", 1001, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-490.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-490.js new file mode 100644 index 0000000000..97dcd9d1fb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-490.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-490", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-490.js", + + description: "ES5 Attributes - fail to update [[Set]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + set: undefined + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.set === setFunc && desc2.set === setFunc && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-491.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-491.js new file mode 100644 index 0000000000..066662d44c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-491.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: "15.2.3.6-4-491", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-491.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + try { + Object.defineProperty(obj, "prop", { + enumerable: true + }); + + return false; + } catch (e) { + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return !result1 && !result2 && desc1.enumerable === false && desc2.enumerable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-492.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-492.js new file mode 100644 index 0000000000..f71ddaf002 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-492.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-492", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-492.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-493.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-493.js new file mode 100644 index 0000000000..46871a7cd5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-493.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-493", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-493.js", + + description: "ES5 Attributes - fail to update the accessor property ([[Get]] is undefined, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to a data property", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: undefined, + set: setFunc, + enumerable: false, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-494.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-494.js new file mode 100644 index 0000000000..91c1599155 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-494.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-494", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-494.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.get === getFunc && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-495.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-495.js new file mode 100644 index 0000000000..5ca104970e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-495.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-495", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-495.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) is undefined", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-496.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-496.js new file mode 100644 index 0000000000..2fc9965228 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-496.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-496", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-496.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) is enumerable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-497.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-497.js new file mode 100644 index 0000000000..acd1ee52b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-497.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-497", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-497.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === true && !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-498.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-498.js new file mode 100644 index 0000000000..1dc1c5cd39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-498.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-498", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-498.js", + + description: "ES5 Attributes - success to update [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + + var result1 = obj.prop === 1001; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + get: undefined + }); + + var result2 = typeof obj.prop === "undefined"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && desc1.get === getFunc && typeof desc2.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-499.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-499.js new file mode 100644 index 0000000000..b14763c318 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-499.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-499", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-499.js", + + description: "ES5 Attributes - success to update [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + obj.prop = "overrideData"; + return typeof desc1.set === "undefined" && desc2.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-5.js new file mode 100644 index 0000000000..8eae830302 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-5.js @@ -0,0 +1,68 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. Step 6 of [[DefineOwnProperty]] returns if +every field of desc also occurs in current and every field in desc has +the same value as current. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-5", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-5.js", + +description: "Object.defineProperty is no-op if current and desc are the same data desc", + +test: function testcase() { + function sameDataDescriptorValues(d1, d2) { + return (d1.value === d2.value && + d1.enumerable === d2.enumerable && + d1.writable === d2.writable && + d1.configurable === d2.configurable); + } + + var o = {}; + + // create a data valued property with the following attributes: + // value: 101, enumerable: true, writable: true, configurable: true + o["foo"] = 101; + + // query for, and save, the desc. A subsequent call to defineProperty + // with the same desc should not disturb the property definition. + var d1 = Object.getOwnPropertyDescriptor(o, "foo"); + + // now, redefine the property with the same descriptor + // the property defintion should not get disturbed. + var desc = { value: 101, enumerable: true, writable: true, configurable: true }; + Object.defineProperty(o, "foo", desc); + + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + + if (sameDataDescriptorValues(d1, d2) === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-50.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-50.js new file mode 100644 index 0000000000..ae9614d7b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-50.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: "15.2.3.6-4-50", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-50.js", + + description: "Object.defineProperty - 'name' property doesn't exist in 'O', test [[Configurable]] of 'name' property is set as false if it is absent in data descriptor 'desc' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + value: 1001, + writable: true, + enumerable: true + }); + return dataPropertyAttributesAreCorrect(obj, "property", 1001, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-500.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-500.js new file mode 100644 index 0000000000..0d59ddf33f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-500.js @@ -0,0 +1,66 @@ +/// 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: "15.2.3.6-4-500", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-500.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of accessor property ([[Get]] is Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + Object.defineProperty(obj, "prop", { + enumerable: false + }); + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return result1 && !result2 && desc1.enumerable === true && desc2.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-501.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-501.js new file mode 100644 index 0000000000..e1d5defe82 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-501.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: "15.2.3.6-4-501", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-501.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-502.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-502.js new file mode 100644 index 0000000000..97e8be30a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-502.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-502", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-502.js", + + description: "ES5 Attributes - success to update the accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is true) to a data property", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-503.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-503.js new file mode 100644 index 0000000000..439c14246f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-503.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-503", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-503.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.get === getFunc && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-504.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-504.js new file mode 100644 index 0000000000..0d889e2846 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-504.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-504", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-504.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) is undefined", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-505.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-505.js new file mode 100644 index 0000000000..a29c6e92b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-505.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-505", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-505.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) is enumerable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-506.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-506.js new file mode 100644 index 0000000000..90522a1f23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-506.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-506", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-506.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-507.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-507.js new file mode 100644 index 0000000000..6ad40fc4b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-507.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-507", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-507.js", + + description: "ES5 Attributes - fail to update [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + + var result1 = obj.prop === 1001; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + get: undefined + }); + + return false; + } catch (e) { + var result2 = obj.prop === 1001; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && desc1.get === getFunc && desc2.get === getFunc && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-508.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-508.js new file mode 100644 index 0000000000..366375171d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-508.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.6-4-508", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-508.js", + + description: "ES5 Attributes - fail to update [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return typeof desc1.set === "undefined" && typeof desc2.set === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-509.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-509.js new file mode 100644 index 0000000000..673a4e6430 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-509.js @@ -0,0 +1,71 @@ +/// 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: "15.2.3.6-4-509", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-509.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + try { + Object.defineProperty(obj, "prop", { + enumerable: false + }); + + return false; + } catch (e) { + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return result1 && result2 && desc1.enumerable === true && desc2.enumerable === true && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-51.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-51.js new file mode 100644 index 0000000000..498ee6f733 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-51.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-51", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-51.js", + + description: "Object.defineProperty - desc is data descriptor, test updating all attribute values of 'name' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = { "property": 1 }; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + enumerable: false, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "property", 1001, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-510.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-510.js new file mode 100644 index 0000000000..c3dbade0de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-510.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-510", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-510.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-511.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-511.js new file mode 100644 index 0000000000..d99d1f30d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-511.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-511", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-511.js", + + description: "ES5 Attributes - fail to update the accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is true, [[Configurable]] is false) to a data property", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: true, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-512.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-512.js new file mode 100644 index 0000000000..c98117f77f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-512.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-512", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-512.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.get === getFunc && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-513.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-513.js new file mode 100644 index 0000000000..10623ed9c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-513.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-513", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-513.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) is undefined", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-514.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-514.js new file mode 100644 index 0000000000..e35fe56c76 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-514.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-514", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-514.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) is unenumerable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return false; + } + } + + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-515.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-515.js new file mode 100644 index 0000000000..12acb180c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-515.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-515", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-515.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === true && !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-516.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-516.js new file mode 100644 index 0000000000..6808f174c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-516.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-516", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-516.js", + + description: "ES5 Attributes - success to update [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + + var result1 = obj.prop === 1001; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + get: undefined + }); + + var result2 = typeof obj.prop === "undefined"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && desc1.get === getFunc && typeof desc2.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-517.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-517.js new file mode 100644 index 0000000000..6f29d02618 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-517.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-517", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-517.js", + + description: "ES5 Attributes - success to update [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + obj.prop = "overrideData"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return typeof desc1.set === "undefined" && propertyDefineCorrect && desc2.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-518.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-518.js new file mode 100644 index 0000000000..4387ac34ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-518.js @@ -0,0 +1,66 @@ +/// 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: "15.2.3.6-4-518", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-518.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + Object.defineProperty(obj, "prop", { + enumerable: true + }); + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return !result1 && result2 && desc1.enumerable === false && desc2.enumerable === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-519.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-519.js new file mode 100644 index 0000000000..7f8618e4ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-519.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: "15.2.3.6-4-519", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-519.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-52.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-52.js new file mode 100644 index 0000000000..72ad58eb0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-52.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.6-4-52", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-52.js", + + description: "Object.defineProperty - 'desc' is generic descriptor without any attribute, test 'name' is defined in 'obj' with all default attribute values (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", {}); + + return dataPropertyAttributesAreCorrect(obj, "property", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-520.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-520.js new file mode 100644 index 0000000000..cd037dbc67 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-520.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-520", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-520.js", + + description: "ES5 Attributes - success to update the accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is true) to a data property", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-521.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-521.js new file mode 100644 index 0000000000..9e655c50e6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-521.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-521", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-521.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.get === getFunc && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-522.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-522.js new file mode 100644 index 0000000000..5926cbc422 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-522.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-522", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-522.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) is undefined", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && typeof desc.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-523.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-523.js new file mode 100644 index 0000000000..d5e379d7e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-523.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-523", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-523.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) is unenumerable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return false; + } + } + + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-524.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-524.js new file mode 100644 index 0000000000..09330fc0c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-524.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-524", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-524.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-525.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-525.js new file mode 100644 index 0000000000..fac90557cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-525.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-525", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-525.js", + + description: "ES5 Attributes - fail to update [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + + var result1 = obj.prop === 1001; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + get: undefined + }); + + return false; + } catch (e) { + var result2 = obj.prop === 1001; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && desc1.get === getFunc && desc2.get === getFunc && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-526.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-526.js new file mode 100644 index 0000000000..1cd3b55085 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-526.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.6-4-526", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-526.js", + + description: "ES5 Attributes - fail to update [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return typeof desc1.set === "undefined" && typeof desc2.set === "undefined" && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-527.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-527.js new file mode 100644 index 0000000000..0c8490871e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-527.js @@ -0,0 +1,71 @@ +/// 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: "15.2.3.6-4-527", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-527.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + try { + Object.defineProperty(obj, "prop", { + enumerable: true + }); + + return false; + } catch (e) { + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return !result1 && !result2 && desc1.enumerable === false && desc2.enumerable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-528.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-528.js new file mode 100644 index 0000000000..0787f745c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-528.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-528", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-528.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-529.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-529.js new file mode 100644 index 0000000000..23a445a113 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-529.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-529", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-529.js", + + description: "ES5 Attributes - fail to update the accessor property ([[Get]] is a Function, [[Set]] is undefined, [[Enumerable]] is false, [[Configurable]] is false) to a data property", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: undefined, + enumerable: false, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-53.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-53.js new file mode 100644 index 0000000000..89713edf9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-53.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-53", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-53.js", + + description: "Object.defineProperty - 'name' property doesn't exist in 'O', test [[Get]] of 'name' property is set as undefined if it is absent in accessor descriptor 'desc' (8.12.9 step 4.b)", + + test: function testcase() { + var obj = {}; + var setFunc = function (value) { + obj.setVerifyHelpProp = value; + }; + + Object.defineProperty(obj, "property", { + set: setFunc, + enumerable: true, + configurable: true + }); + + return accessorPropertyAttributesAreCorrect(obj, "property", undefined, setFunc, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-530.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-530.js new file mode 100644 index 0000000000..6fde78d705 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-530.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-530", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-530.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.get === getFunc && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-1.js new file mode 100644 index 0000000000..70e4d42351 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-1.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-531-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-1.js", + + description: "Object.defineProperty will update [[Get]] and [[Set]] attributes of named accessor property 'P' successfully when [[Configurable]] attribute is true, 'O' is an Object object (8.12.9 step 11)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "property", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-10.js new file mode 100644 index 0000000000..b880226cf3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-10.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-531-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-10.js", + + description: "Object.defineProperty will update [[Get]] and [[Set]] attributes of indexed accessor property 'P' successfully when [[Configurable]] attribute is true, 'O' is an Object object (8.12.9 step 11)", + + test: function testcase() { + + var obj = {}; + + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "0", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-11.js new file mode 100644 index 0000000000..fbfb6b79bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-11.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-531-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-11.js", + + description: "Object.defineProperty will update [[Get]] and [[Set]] attributes of named accessor property 'P' successfully when [[Configurable]] attribute is true, 'A' is an Array object (8.12.9 step 11)", + + test: function testcase() { + + var obj = []; + + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "prop", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction1", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-12.js new file mode 100644 index 0000000000..e4cc4c3a07 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-12.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.6-4-531-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-12.js", + + description: "Object.defineProperty will update [[Get]] and [[Set]] attributes of indexed accessor property successfully when [[Configurable]] attribute is true, 'O' is an Arguments object (8.12.9 step 11)", + + test: function testcase() { + + var obj = (function () { + return arguments; + }()); + + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "0", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-13.js new file mode 100644 index 0000000000..2f3ab10955 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-13.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-531-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-13.js", + + description: "Object.defineProperty will update [[Get]] and [[Set]] attributes of indexed accessor property 'P' successfully when [[Configurable]] attribute is true, 'O' is the global object (8.12.9 step 11)", + + test: function testcase() { + + var obj = fnGlobalObject(); + try { + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "0", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true); + } finally { + delete obj[0]; + delete obj.verifySetFunction; + delete obj.verifySetFunction1; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-2.js new file mode 100644 index 0000000000..1211182a4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-2.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-531-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-2.js", + + description: "Object.defineProperty will update [[Get]] and [[Set]] attributes of indexed accessor property 'P' successfully when [[Configurable]] attribute is true, 'A' is an Array object (8.12.9 step 11)", + + test: function testcase() { + + var obj = []; + + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "0", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-3.js new file mode 100644 index 0000000000..988a9c6eaa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-3.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.6-4-531-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-3.js", + + description: "Object.defineProperty will update [[Get]] and [[Set]] attributes of named accessor property successfully when [[Configurable]] attribute is true, 'O' is an Arguments object (8.12.9 step 11)", + + test: function testcase() { + + var obj = (function () { + return arguments; + }()); + + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "property", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-4.js new file mode 100644 index 0000000000..a7a1f2150b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-4.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-531-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531-4.js", + + description: "Object.defineProperty will update [[Get]] and [[Set]] attributes of named accessor property 'P' successfully when [[Configurable]] attribute is true, 'O' is the global object (8.12.9 step 11)", + + test: function testcase() { + + var obj = fnGlobalObject(); + try { + obj.verifySetFunction = "data"; + Object.defineProperty(obj, "property", { + get: function () { + return obj.verifySetFunction; + }, + set: function (value) { + obj.verifySetFunction = value; + }, + configurable: true + }); + + obj.verifySetFunction1 = "data1"; + var getFunc = function () { + return obj.verifySetFunction1; + }; + var setFunc = function (value) { + obj.verifySetFunction1 = value; + }; + + Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc + }); + + return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true); + } finally { + delete obj.property; + delete obj.verifySetFunction; + delete obj.verifySetFunction1; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531.js new file mode 100644 index 0000000000..c4c9056b34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-531", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-531.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-532.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-532.js new file mode 100644 index 0000000000..b0d65faf5e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-532.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-532", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-532.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) is enumerable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-533.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-533.js new file mode 100644 index 0000000000..fa0bf4ecaa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-533.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-533", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-533.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === true && !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-534.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-534.js new file mode 100644 index 0000000000..cff20020bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-534.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-534", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-534.js", + + description: "ES5 Attributes - success to update [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + var result1 = obj.prop === 1001; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + get: undefined + }); + + var result2 = typeof obj.prop === "undefined"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && desc1.get === getFunc && typeof desc2.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-535.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-535.js new file mode 100644 index 0000000000..f3552d6e51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-535.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-535", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-535.js", + + description: "ES5 Attributes - success to update [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + set: undefined + }); + + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.set === setFunc && typeof desc2.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-536.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-536.js new file mode 100644 index 0000000000..6de07f2606 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-536.js @@ -0,0 +1,71 @@ +/// 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: "15.2.3.6-4-536", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-536.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + Object.defineProperty(obj, "prop", { + enumerable: false + }); + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return result1 && !result2 && desc1.enumerable === true && desc2.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-537.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-537.js new file mode 100644 index 0000000000..5fae300931 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-537.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-537", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-537.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-538.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-538.js new file mode 100644 index 0000000000..66c510462b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-538.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-538", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-538.js", + + description: "ES5 Attributes - success to update the accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is true) to a data property", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-539.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-539.js new file mode 100644 index 0000000000..8e8fd3e15c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-539.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-539", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-539.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.get === getFunc && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-54.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-54.js new file mode 100644 index 0000000000..ea8c4781a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-54.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.6-4-54", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-54.js", + + description: "Object.defineProperty - 'name' property doesn't exist in 'O', test [[Set]] of 'name' property of 'Attributes' is set as undefined value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "property", { + get: function () { + return "property"; + }, + enumerable: false, + configurable: false + }); + + + if (obj.property !== "property") { + return false; + } + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + if (typeof desc.set !== "undefined") { + return false; + } + for (var p in obj) { + if (p === "property") { + return false; + } + } + delete obj.property; + if (!obj.hasOwnProperty("property")) { + return false; + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-1.js new file mode 100644 index 0000000000..6219cb8d11 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-1.js @@ -0,0 +1,71 @@ +/// 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: "15.2.3.6-4-540-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-1.js", + + description: "Object.defineProperty fails to update [[Get]] and [[Set]] attributes of a named accessor property 'P' whose [[Configurable]] attribute is false and throws TypeError exception, 'O' is an Object object (8.12.9 step 11.a)", + + test: function testcase() { + var obj = {}; + + obj.verifySetFunction = "data"; + var getFunc = function () { + return obj.verifySetFunction; + }; + var setFunc = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc, + configurable: false + }); + + var result = false; + try { + Object.defineProperty(obj, "property", { + get: function () { + return 100; + } + }); + } catch (e) { + result = e instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false); + } + + try { + Object.defineProperty(obj, "property", { + set: function (value) { + obj.verifySetFunction1 = value; + } + }); + } catch (e1) { + return result && e1 instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-3.js new file mode 100644 index 0000000000..94d5238578 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-3.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: "15.2.3.6-4-540-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-3.js", + + description: "Object.defineProperty fails to update [[Get]] and [[Set]] attributes of a named accessor property 'P' whose [[Configurable]] attribute is false, 'O' is an Arguments object (8.12.9 step 11.a)", + + test: function testcase() { + var obj = (function () { + return arguments; + }()); + + obj.verifySetFunction = "data"; + var getFunc = function () { + return obj.verifySetFunction; + }; + var setFunc = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc, + configurable: false + }); + + var result = false; + try { + Object.defineProperty(obj, "property", { + get: function () { + return 100; + } + }); + } catch (e) { + result = e instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false); + } + + try { + Object.defineProperty(obj, "property", { + set: function (value) { + obj.verifySetFunction1 = value; + } + }); + } catch (e1) { + return result && e1 instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-6.js new file mode 100644 index 0000000000..cb043e06d9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-6.js @@ -0,0 +1,71 @@ +/// 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: "15.2.3.6-4-540-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-6.js", + + description: "Object.defineProperty fails to update [[Get]] and [[Set]] attributes of an indexed accessor property 'P' whose [[Configurable]] attribute is false and throws TypeError exception, 'O' is an Object object (8.12.9 step 11.a)", + + test: function testcase() { + var obj = {}; + + obj.verifySetFunction = "data"; + var getFunc = function () { + return obj.verifySetFunction; + }; + var setFunc = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + configurable: false + }); + + var result = false; + try { + Object.defineProperty(obj, "0", { + get: function () { + return 100; + } + }); + } catch (e) { + result = e instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); + } + + try { + Object.defineProperty(obj, "0", { + set: function (value) { + obj.verifySetFunction1 = value; + } + }); + } catch (e1) { + return result && e1 instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-7.js new file mode 100644 index 0000000000..10afee0d31 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-7.js @@ -0,0 +1,71 @@ +/// 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: "15.2.3.6-4-540-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-7.js", + + description: "Object.defineProperty fails to update [[Get]] and [[Set]] attributes of a named property 'P' whose [[Configurable]] attribute is false and throws TypeError exception, 'A' is an Array object (8.12.9 step 11.a)", + + test: function testcase() { + var obj = []; + + obj.verifySetFunction = "data"; + var getFunc = function () { + return obj.verifySetFunction; + }; + var setFunc = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + configurable: false + }); + + var result = false; + try { + Object.defineProperty(obj, "prop", { + get: function () { + return 100; + } + }); + } catch (e) { + result = e instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction", false, false); + } + + try { + Object.defineProperty(obj, "prop", { + set: function (value) { + obj.verifySetFunction1 = value; + } + }); + } catch (e1) { + return result && e1 instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-8.js new file mode 100644 index 0000000000..77288d60fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-8.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: "15.2.3.6-4-540-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540-8.js", + + description: "Object.defineProperty fails to update [[Get]] and [[Set]] attributes of an indexed accessor property 'P' whose [[Configurable]] attribute is false, 'O' is an Arguments object (8.12.9 step 11.a)", + + test: function testcase() { + var obj = (function () { + return arguments; + }()); + + obj.verifySetFunction = "data"; + var getFunc = function () { + return obj.verifySetFunction; + }; + var setFunc = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "0", { + get: getFunc, + set: setFunc, + configurable: false + }); + + var result = false; + try { + Object.defineProperty(obj, "0", { + get: function () { + return 100; + } + }); + } catch (e) { + result = e instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); + } + + try { + Object.defineProperty(obj, "0", { + set: function (value) { + obj.verifySetFunction1 = value; + } + }); + } catch (e1) { + return result && e1 instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540.js new file mode 100644 index 0000000000..6ffedb3ae3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-540", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-540.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-541.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-541.js new file mode 100644 index 0000000000..8b9ba3e86f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-541.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-541", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-541.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) is enumerable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return propertyDefineCorrect && desc.enumerable === true; + } + } + + return false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-542.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-542.js new file mode 100644 index 0000000000..aaaae6b25a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-542.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-542", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-542.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-543.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-543.js new file mode 100644 index 0000000000..c61380059b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-543.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-543", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-543.js", + + description: "ES5 Attributes - fail to update [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + + var result1 = obj.prop === 1001; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + get: undefined + }); + + return false; + } catch (e) { + var result2 = obj.prop === 1001; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && desc1.get === getFunc && desc2.get === getFunc && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-544.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-544.js new file mode 100644 index 0000000000..2d968d833b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-544.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.6-4-544", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-544.js", + + description: "ES5 Attributes - fail to update [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + set: undefined + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.set === setFunc && desc2.set === setFunc && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-545.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-545.js new file mode 100644 index 0000000000..971b0972fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-545.js @@ -0,0 +1,76 @@ +/// 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: "15.2.3.6-4-545", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-545.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + try { + Object.defineProperty(obj, "prop", { + enumerable: false + }); + + return false; + } catch (e) { + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return result1 && result2 && desc1.enumerable === true && desc2.enumerable === true && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-546.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-546.js new file mode 100644 index 0000000000..1a6e2d1a73 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-546.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.6-4-546", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-546.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-547.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-547.js new file mode 100644 index 0000000000..c978d53042 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-547.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.6-4-547", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-547.js", + + description: "ES5 Attributes - fail to update the accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is true, [[Configurable]] is false) to a data property", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-548.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-548.js new file mode 100644 index 0000000000..8c02537601 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-548.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-548", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-548.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.get === getFunc && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-549.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-549.js new file mode 100644 index 0000000000..824e57ba36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-549.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-549", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-549.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-55.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-55.js new file mode 100644 index 0000000000..7ff6e29b9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-55.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-55", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-55.js", + + description: "Object.defineProperty - 'name' property doesn't exist in 'O', test [[Enumerable]] of 'name' property of 'Attributes' is set as false value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i)", + + test: function testcase() { + var obj = {}; + + var setFunc = function (value) { + obj.setVerifyHelpProp = value; + }; + var getFunc = function () { + return 10; + }; + + Object.defineProperty(obj, "property", { + set: setFunc, + get: getFunc, + configurable: true + }); + return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-550.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-550.js new file mode 100644 index 0000000000..6e3b17a43d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-550.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-550", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-550.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) is unenumerable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return false; + } + } + + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-551.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-551.js new file mode 100644 index 0000000000..e8bbd12d50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-551.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-551", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-551.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) is deletable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === true && !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-552.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-552.js new file mode 100644 index 0000000000..92b5663ae3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-552.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-552", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-552.js", + + description: "ES5 Attributes - success to update [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + var result1 = obj.prop === 1001; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + get: undefined + }); + + var result2 = typeof obj.prop === "undefined"; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && desc1.get === getFunc && typeof desc2.get === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-553.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-553.js new file mode 100644 index 0000000000..706cfde44a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-553.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-553", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-553.js", + + description: "ES5 Attributes - success to update [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + set: undefined + }); + + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.set === setFunc && typeof desc2.set === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-554.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-554.js new file mode 100644 index 0000000000..cff96f570f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-554.js @@ -0,0 +1,72 @@ +/// 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: "15.2.3.6-4-554", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-554.js", + + description: "ES5 Attributes - success to update [[Enumerable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + Object.defineProperty(obj, "prop", { + enumerable: true + }); + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return !result1 && result2 && desc1.enumerable === false && desc2.enumerable === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-555.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-555.js new file mode 100644 index 0000000000..c97aca4a66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-555.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.6-4-555", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-555.js", + + description: "ES5 Attributes - success to update [[Configurable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + configurable: false + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-556.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-556.js new file mode 100644 index 0000000000..40d618829d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-556.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-556", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-556.js", + + description: "ES5 Attributes - success to update the accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is true) to a data property", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: true + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + Object.defineProperty(obj, "prop", { + value: 1001 + }); + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-557.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-557.js new file mode 100644 index 0000000000..8882ec375d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-557.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-557", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-557.js", + + description: "ES5 Attributes - [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.get === getFunc && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-558.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-558.js new file mode 100644 index 0000000000..729ae08701 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-558.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.6-4-558", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-558.js", + + description: "ES5 Attributes - [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) is the expected function", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + + obj.prop = "overrideData"; + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return propertyDefineCorrect && desc.set === setFunc && verifySetFunc === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-559.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-559.js new file mode 100644 index 0000000000..9bc3af19c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-559.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-559", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-559.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) is unenumerable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + for (var p in obj) { + if (p === "prop") { + return false; + } + } + + return propertyDefineCorrect && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-56.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-56.js new file mode 100644 index 0000000000..526417e940 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-56.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-56", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-56.js", + + description: "Object.defineProperty - 'name' property doesn't exist in 'O', test [[Configurable]] of 'name' property is set as false if it is absent in accessor descriptor 'desc' (8.12.9 step 4.b.i)", + + test: function testcase() { + var obj = {}; + var setFunc = function (value) { + obj.setVerifyHelpProp = value; + }; + var getFunc = function () { + return 10; + }; + + Object.defineProperty(obj, "property", { + set: setFunc, + get: getFunc, + enumerable: true + }); + return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-560.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-560.js new file mode 100644 index 0000000000..be68a80e1e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-560.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-560", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-560.js", + + description: "ES5 Attributes - property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) is undeletable", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + + var propertyDefineCorrect = obj.hasOwnProperty("prop"); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + delete obj.prop; + + return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-561.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-561.js new file mode 100644 index 0000000000..caa055a448 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-561.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-561", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-561.js", + + description: "ES5 Attributes - fail to update [[Get]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + + var result1 = obj.prop === 1001; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + get: undefined + }); + + return false; + } catch (e) { + var result2 = obj.prop === 1001; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return result1 && result2 && desc1.get === getFunc && desc2.get === getFunc && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-562.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-562.js new file mode 100644 index 0000000000..6b1dd3b9ce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-562.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.6-4-562", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-562.js", + + description: "ES5 Attributes - fail to update [[Set]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + set: undefined + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.set === setFunc && desc2.set === setFunc && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-563.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-563.js new file mode 100644 index 0000000000..96dbbbade2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-563.js @@ -0,0 +1,76 @@ +/// 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: "15.2.3.6-4-563", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-563.js", + + description: "ES5 Attributes - fail to update [[Enumerable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + var result1 = false; + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p1 in obj) { + if (p1 === "prop") { + result1 = true; + } + } + + try { + Object.defineProperty(obj, "prop", { + enumerable: true + }); + + return false; + } catch (e) { + var result2 = false; + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + for (var p2 in obj) { + if (p2 === "prop") { + result2 = true; + } + } + + return !result1 && !result2 && desc1.enumerable === false && desc2.enumerable === false && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-564.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-564.js new file mode 100644 index 0000000000..3b03099f07 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-564.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.6-4-564", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-564.js", + + description: "ES5 Attributes - fail to update [[Configurable]] attribute of accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to different value", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + configurable: true + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + delete obj.prop; + + return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-565.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-565.js new file mode 100644 index 0000000000..95684b4615 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-565.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.6-4-565", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-565.js", + + description: "ES5 Attributes - fail to update the accessor property ([[Get]] is a Function, [[Set]] is a Function, [[Enumerable]] is false, [[Configurable]] is false) to a data property", + + test: function testcase() { + var obj = {}; + + var getFunc = function () { + return 1001; + }; + + var verifySetFunc = "data"; + var setFunc = function (value) { + verifySetFunc = value; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc, + set: setFunc, + enumerable: false, + configurable: false + }); + var desc1 = Object.getOwnPropertyDescriptor(obj, "prop"); + + try { + Object.defineProperty(obj, "prop", { + value: 1001 + }); + + return false; + } catch (e) { + var desc2 = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-566.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-566.js new file mode 100644 index 0000000000..25f7322952 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-566.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-566", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-566.js", + + description: "ES5 Attributes - [[Get]] attribute is a function which has zero argument", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 2010; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && obj.prop === 2010 && desc.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-567.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-567.js new file mode 100644 index 0000000000..d0e08a3892 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-567.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-567", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-567.js", + + description: "ES5 Attributes - [[Get]] attribute is a function which has one argument", + + test: function testcase() { + var obj = {}; + var getFunc = function (arg1) { + return 2010; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && obj.prop === 2010 && desc.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-568.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-568.js new file mode 100644 index 0000000000..eee9fc0ad9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-568.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.6-4-568", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-568.js", + + description: "ES5 Attributes - [[Get]] attribute is a function which has two arguments", + + test: function testcase() { + var obj = {}; + var getFunc = function (arg1, arg2) { + return 2010; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && obj.prop === 2010 && desc.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-569.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-569.js new file mode 100644 index 0000000000..0177b65f1c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-569.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-569", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-569.js", + + description: "ES5 Attributes - [[Get]] attribute is a function which contains global variable", + + test: function testcase() { + var obj = {}; + var globalVariable = 20; + var getFunc = function () { + globalVariable = 2010; + return globalVariable; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && desc.get === getFunc && obj.prop === 2010 && globalVariable === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-57.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-57.js new file mode 100644 index 0000000000..1849339e6c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-57.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.6-4-57", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-57.js", + + description: "Object.defineProperty - 'desc' is accessor descriptor, test updating all attribute values of 'name' (8.12.9 step 4.b.i)", + + test: function testcase() { + var obj = {}; + var setFunc = function (value) { + obj.setVerifyHelpProp = value; + }; + var getFunc = function () { + return 14; + }; + + Object.defineProperty(obj, "property", { + get: function () { + return 11; + }, + set: function (value) { }, + configurable: true, + enumerable: true + }); + + Object.defineProperty(obj, "property", { + get: getFunc, + set: setFunc, + configurable: false, + enumerable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-570.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-570.js new file mode 100644 index 0000000000..09a036c467 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-570.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-570", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-570.js", + + description: "ES5 Attributes - [[Get]] attribute is a function which doesn't contains return statement", + + test: function testcase() { + var obj = {}; + var verifyExecute = false; + var getFunc = function () { + verifyExecute = true; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + var tempVariable = obj.prop; + + return obj.hasOwnProperty("prop") && desc.get === getFunc && verifyExecute && typeof obj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-571.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-571.js new file mode 100644 index 0000000000..c6c1cebd6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-571.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-571", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-571.js", + + description: "ES5 Attributes - [[Get]] attribute is a function which involves 'this' object into statement(s)", + + test: function testcase() { + var obj = { + len: 2010 + }; + var getFunc = function () { + return this; + }; + + Object.defineProperty(obj, "prop", { + get: getFunc + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && obj.prop === obj && desc.get === getFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-572.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-572.js new file mode 100644 index 0000000000..81fa0e9783 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-572.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-572", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-572.js", + + description: "ES5 Attributes - [[Set]] attribute is a function which has zero argument", + + test: function testcase() { + var obj = {}; + + var setFunc = function () { }; + + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && desc.set === setFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-573.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-573.js new file mode 100644 index 0000000000..feafe6fecd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-573.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-573", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-573", + + description: "ES5 Attributes - [[Set]] attribute is a function which has one argument", + + test: function testcase() { + var obj = {}; + + var verifySetFunc = 20; + var setFunc = function (value) { + verifySetFunc = value; + }; + Object.defineProperty(obj, "prop", { + set: setFunc + }); + obj.prop = 2010; + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && desc.set === setFunc && verifySetFunc === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-574.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-574.js new file mode 100644 index 0000000000..b33eea3444 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-574.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-574", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-574", + + description: "ES5 Attributes - [[Set]] attribute is a function which has two arguments", + + test: function testcase() { + var obj = {}; + var firstArg = 12; + var secondArg = 12; + + var setFunc = function (a, b) { + firstArg = a; + secondArg = b; + }; + Object.defineProperty(obj, "prop", { + set: setFunc + }); + obj.prop = 100; + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && desc.set === setFunc && firstArg === 100 && typeof secondArg === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-575.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-575.js new file mode 100644 index 0000000000..f5c5b0dd78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-575.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-575", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-575.js", + + description: "ES5 Attributes - [[Set]] attribute is a function which contains global variable", + + test: function testcase() { + var obj = {}; + var globalVariable = 20; + var setFunc = function () { + globalVariable = 2010; + }; + + Object.defineProperty(obj, "prop", { + set: setFunc + }); + obj.prop = 10; + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && desc.set === setFunc && globalVariable === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-576.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-576.js new file mode 100644 index 0000000000..c98930b37b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-576.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.6-4-576", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-576.js", + + description: "ES5 Attributes - [[Set]] attribute is a function which contains return statement", + + test: function testcase() { + var obj = {}; + + var setFunc = function () { + return 2010; + }; + + Object.defineProperty(obj, "prop", { + set: setFunc + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && desc.set === setFunc; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-577.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-577.js new file mode 100644 index 0000000000..3d075f899d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-577.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.6-4-577", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-577.js", + + description: "ES5 Attributes - [[Set]] attribute is a function which involves 'this' object into statement(s)", + + test: function testcase() { + var obj = {}; + + var setFunc = function (value) { + this.len = value; + }; + + Object.defineProperty(obj, "prop", { + set: setFunc + }); + obj.prop = 2010; + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && desc.set === setFunc && obj.len === 2010; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-578.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-578.js new file mode 100644 index 0000000000..8565c49e22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-578.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-578", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-578.js", + + description: "ES5 Attributes - [[Get]] field of inherited property of [[Prototype]] internal property is correct (String instance)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(String.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + var strObj = new String(); + + return !strObj.hasOwnProperty("prop") && strObj.prop === "data"; + } finally { + delete String.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-579.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-579.js new file mode 100644 index 0000000000..d9a5f80450 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-579.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-579", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-579.js", + + description: "ES5 Attributes - Success to add property into object (Array instance)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(Array.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + var arrObj = new Array(); + arrObj.prop = "myOwnProperty"; + + return !arrObj.hasOwnProperty("prop") && arrObj.prop === "myOwnProperty" && data === "myOwnProperty"; + } finally { + delete Array.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-58.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-58.js new file mode 100644 index 0000000000..4f47fa73a7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-58.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: "15.2.3.6-4-58", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-58.js", + + description: "Object.defineProperty - 'name' is data descriptor and every fields in 'desc' is absent (8.12.9 step 5)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "foo", {}); + return dataPropertyAttributesAreCorrect(obj, "foo", 101, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-580.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-580.js new file mode 100644 index 0000000000..8ff5e4a1ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-580.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-580", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-580.js", + + description: "ES5 Attributes - Inherited property is enumerable (Boolean instance)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(Boolean.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + var boolObj = new Boolean(); + var verifyEnumerable = false; + for (var p in boolObj) { + if(p === "prop") { + verifyEnumerable = true; + } + } + + return !boolObj.hasOwnProperty("prop") && verifyEnumerable; + } finally { + delete Boolean.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-581.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-581.js new file mode 100644 index 0000000000..74b7e339ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-581.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-581", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-581.js", + + description: "ES5 Attributes - Fail to add property into object (Number instance)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(Number.prototype, "prop", { + get: function () { + return data; + }, + enumerable: false, + configurable: true + }); + var numObj = new Number(); + numObj.prop = "myOwnProperty"; + + return !numObj.hasOwnProperty("prop") && numObj.prop === "data" && data === "data"; + } finally { + delete Number.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-582.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-582.js new file mode 100644 index 0000000000..bb60766a7d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-582.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-582", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-582.js", + + description: "ES5 Attributes - Inherited property is non-enumerable (Function instance)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(Function.prototype, "prop", { + get: function () { + return data; + }, + enumerable: false, + configurable: true + }); + var funObj = function () { }; + var verifyEnumerable = false; + for (var p in funObj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !funObj.hasOwnProperty("prop") && !verifyEnumerable; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-583.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-583.js new file mode 100644 index 0000000000..68030af59b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-583.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-583", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-583.js", + + description: "ES5 Attributes - [[Get]] field of inherited property of [[Prototype]] internal property is correct (Error Instance)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(Error.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + var errObj = new Error(); + + return !errObj.hasOwnProperty("prop") && errObj.prop === "data"; + } finally { + delete Error.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-584.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-584.js new file mode 100644 index 0000000000..7d18652ed6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-584.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.6-4-584", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-584.js", + + description: "ES5 Attributes - Failed to add property into object (Date instance)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(Date.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + var dateObj = new Date(); + dateObj.prop = "myOwnProperty"; + + return !dateObj.hasOwnProperty("prop") && dateObj.prop === "myOwnProperty" && data === "myOwnProperty"; + } finally { + delete Date.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-585.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-585.js new file mode 100644 index 0000000000..5a61912d82 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-585.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-585", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-585.js", + + description: "ES5 Attributes - Inherited property is enumerable (RegExp instance)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(RegExp.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + var regObj = new RegExp(); + var verifyEnumerable = false; + for (var p in regObj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !regObj.hasOwnProperty("prop") && verifyEnumerable; + } finally { + delete RegExp.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-586.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-586.js new file mode 100644 index 0000000000..355b4ac17a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-586.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-586", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-586.js", + + description: "ES5 Attributes - Fail to update value of property into of [[Proptotype]] internal property (JSON)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(Object.prototype, "prop", { + get: function () { + return data; + }, + enumerable: false, + configurable: true + }); + JSON.prop = "myOwnProperty"; + + return !JSON.hasOwnProperty("prop") && JSON.prop === "data" && data === "data"; + } finally { + delete Object.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-587.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-587.js new file mode 100644 index 0000000000..56df4d8eef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-587.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: "15.2.3.6-4-587", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-587.js", + + description: "ES5 Attributes - Inherited property is unenumerable (Math)", + + test: function testcase() { + var data = "data"; + try { + Object.defineProperty(Object.prototype, "prop", { + get: function () { + return data; + }, + enumerable: false, + configurable: true + }); + var verifyEnumerable = false; + for (var p in Math) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !Math.hasOwnProperty("prop") && !verifyEnumerable; + } finally { + delete Object.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-588.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-588.js new file mode 100644 index 0000000000..21953bc669 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-588.js @@ -0,0 +1,76 @@ +/// 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: "15.2.3.6-4-588", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-588.js", + + description: "ES5 Attributes - [[Get]] field of inherited property of [[Prototype]] internal property is correct (Object.create)", + + test: function testcase() { + var appointment = {}; + + var data1 = 1001; + Object.defineProperty(appointment, "startTime", { + get: function () { + return data1; + }, + enumerable: true, + configurable: false + }); + var data2 = "NAME"; + Object.defineProperty(appointment, "name", { + get: function () { + return data2; + }, + set: function (value) { + data2 = value; + }, + enumerable: true, + configurable: true + }); + + var meeting = Object.create(appointment); + var data3 = "In-person meeting"; + Object.defineProperty(meeting, "conferenceCall", { + get: function () { + return data3; + }, + enumerable: true, + configurable: false + }); + + var teamMeeting = Object.create(meeting); + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty('startTime'); + + return hasOwnProperty && teamMeeting.name === "NAME" && + teamMeeting.startTime === 1001 && + teamMeeting.conferenceCall === "In-person meeting"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-589.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-589.js new file mode 100644 index 0000000000..2d8817d922 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-589.js @@ -0,0 +1,86 @@ +/// 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: "15.2.3.6-4-589", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-589.js", + + description: "ES5 Attributes - Success to update value of property into of [[Proptotype]] internal property (Object.create)", + + test: function testcase() { + var appointment = {}; + + var data1 = 1001; + Object.defineProperty(appointment, "startTime", { + get: function () { + return data1; + }, + set: function (value) { + data1 = value; + }, + enumerable: true, + configurable: true + }); + var data2 = "NAME"; + Object.defineProperty(appointment, "name", { + get: function () { + return data2; + }, + set: function (value) { + data2 = value; + }, + enumerable: true, + configurable: false + }); + + var meeting = Object.create(appointment); + var data3 = "In-person meeting"; + Object.defineProperty(meeting, "conferenceCall", { + get: function () { + return data3; + }, + set: function (value) { + data3 = value; + }, + enumerable: true, + configurable: false + }); + + var teamMeeting = Object.create(meeting); + teamMeeting.name = "Team Meeting"; + var dateObj = new Date("10/31/2010 08:00"); + teamMeeting.startTime = dateObj; + teamMeeting.conferenceCall = "4255551212"; + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty('startTime'); + + return hasOwnProperty && teamMeeting.name === "Team Meeting" && + teamMeeting.startTime === dateObj && + teamMeeting.conferenceCall === "4255551212"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-59.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-59.js new file mode 100644 index 0000000000..0a1d6c8f6d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-59.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-59", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-59.js", + + description: "Object.defineProperty - 'name' is accessor descriptor and every fields in 'desc' is absent (8.12.9 step 5)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return 0; + } + function setFunc(value) { + obj.helpVerifySet = value; + } + + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc + }); + + Object.defineProperty(obj, "foo", {}); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "helpVerifySet", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-590.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-590.js new file mode 100644 index 0000000000..4621be785f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-590.js @@ -0,0 +1,95 @@ +/// 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: "15.2.3.6-4-590", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-590.js", + + description: "ES5 Attributes - Inherited property is enumerable (Object.create)", + + test: function testcase() { + var appointment = {}; + + var data1 = 1001; + Object.defineProperty(appointment, "startTime", { + get: function () { + return data1; + }, + set: function (value) { + data1 = value; + }, + enumerable: true, + configurable: true + }); + var data2 = "NAME"; + Object.defineProperty(appointment, "name", { + get: function () { + return data2; + }, + set: function (value) { + data2 = value; + }, + enumerable: true, + configurable: false + }); + + var meeting = Object.create(appointment); + var data3 = "In-person meeting"; + Object.defineProperty(meeting, "conferenceCall", { + get: function () { + return data3; + }, + set: function (value) { + data3 = value; + }, + enumerable: true, + configurable: false + }); + + var teamMeeting = Object.create(meeting); + + var verifyTimeProp = false; + var verifyNameProp = false; + var verifyCallProp = false; + for (var p in teamMeeting) { + if (p === "startTime") { + verifyTimeProp = true; + } + if (p === "name") { + verifyNameProp = true; + } + if (p === "conferenceCall") { + verifyCallProp = true; + } + } + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty('startTime'); + + return hasOwnProperty && verifyTimeProp && verifyNameProp && verifyCallProp; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-591.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-591.js new file mode 100644 index 0000000000..b2f37d3780 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-591.js @@ -0,0 +1,77 @@ +/// 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: "15.2.3.6-4-591", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-591.js", + + description: "ES5 Attributes - Fail to update value of property of [[Proptotype]] internal property (Object.create)", + + test: function testcase() { + var appointment = {}; + + var data1 = 1001; + Object.defineProperty(appointment, "startTime", { + get: function () { + return data1; + }, + enumerable: false, + configurable: false + }); + var data2 = "NAME"; + Object.defineProperty(appointment, "name", { + get: function () { + return data2; + }, + enumerable: false, + configurable: true + }); + + var meeting = Object.create(appointment); + var data3 = "In-person meeting"; + Object.defineProperty(meeting, "conferenceCall", { + get: function () { + return data3; + }, + enumerable: false, + configurable: false + }); + + var teamMeeting = Object.create(meeting); + teamMeeting.name = "IE Team Meeting"; + var dateObj = new Date("10/31/2010 08:00"); + teamMeeting.startTime = dateObj; + teamMeeting.conferenceCall = "4255551212"; + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty('startTime'); + + return hasOwnProperty && teamMeeting.name === "NAME" && + teamMeeting.startTime === 1001 && + teamMeeting.conferenceCall === "In-person meeting"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-592.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-592.js new file mode 100644 index 0000000000..7f341bbc4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-592.js @@ -0,0 +1,86 @@ +/// 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: "15.2.3.6-4-592", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-592.js", + + description: "ES5 Attributes - Inherited property is non-enumerable (Object.create)", + + test: function testcase() { + var appointment = {}; + + var data1 = 1001; + Object.defineProperty(appointment, "startTime", { + get: function () { + return data1; + }, + enumerable: false, + configurable: true + }); + var data2 = "NAME"; + Object.defineProperty(appointment, "name", { + get: function () { + return data2; + }, + enumerable: false, + configurable: false + }); + + var meeting = Object.create(appointment); + var data3 = "In-person meeting"; + Object.defineProperty(meeting, "conferenceCall", { + get: function () { + return data3; + }, + enumerable: false, + configurable: true + }); + + var teamMeeting = Object.create(meeting); + + var verifyTimeProp = false; + var verifyNameProp = false; + var verifyCallProp = false; + for (var p in teamMeeting) { + if (p === "startTime") { + verifyTimeProp = true; + } + if (p === "name") { + verifyNameProp = true; + } + if (p === "conferenceCall") { + verifyCallProp = true; + } + } + + var hasOwnProperty = !teamMeeting.hasOwnProperty("name") && + !teamMeeting.hasOwnProperty("startTime") && + !teamMeeting.hasOwnProperty('startTime'); + + return hasOwnProperty && !verifyTimeProp && !verifyNameProp && !verifyCallProp; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-593.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-593.js new file mode 100644 index 0000000000..b88234941b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-593.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: "15.2.3.6-4-593", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-593.js", + + description: "ES5 Attributes - [[Get]] field of inherited property of [[Prototype]] internal property is correct (Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + var data = "data"; + try { + Object.defineProperty(Function.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + + var obj = foo.bind({}); + + return !obj.hasOwnProperty("prop") && obj.prop === data; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-594.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-594.js new file mode 100644 index 0000000000..1b6a62ea6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-594.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-594", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-594.js", + + description: "ES5 Attributes - Success to update value of property into of [[Proptotype]] internal property (Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + var data = "data"; + try { + Object.defineProperty(Function.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + + var obj = foo.bind({}); + obj.prop = "overrideData"; + + return !obj.hasOwnProperty("prop") && obj.prop === "overrideData"; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-595.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-595.js new file mode 100644 index 0000000000..f7f1b14f04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-595.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-595", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-595.js", + + description: "ES5 Attributes - Inherited property is enumerable (Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + var data = "data"; + try { + Object.defineProperty(Function.prototype, "prop", { + get: function () { + return data; + }, + set: function (value) { + data = value; + }, + enumerable: true, + configurable: true + }); + + var obj = foo.bind({}); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !obj.hasOwnProperty("prop") && verifyEnumerable; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-596.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-596.js new file mode 100644 index 0000000000..f06516583b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-596.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-596", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-596.js", + + description: "ES5 Attributes - Fail to update value of property into of [[Proptotype]] internal property (Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + var data = "data"; + try { + Object.defineProperty(Function.prototype, "prop", { + get: function () { + return data; + }, + enumerable: false, + configurable: true + }); + + var obj = foo.bind({}); + obj.prop = "overrideData"; + + return !obj.hasOwnProperty("prop") && obj.prop === "data"; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-597.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-597.js new file mode 100644 index 0000000000..de6a1bb21b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-597.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-597", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-597.js", + + description: "ES5 Attributes - Inherited property is non-enumerable (Function.prototype.bind)", + + test: function testcase() { + var foo = function () { }; + var data = "data"; + try { + Object.defineProperty(Function.prototype, "prop", { + get: function () { + return data; + }, + enumerable: false, + configurable: true + }); + + var obj = foo.bind({}); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "prop") { + verifyEnumerable = true; + } + } + + return !obj.hasOwnProperty("prop") && !verifyEnumerable; + } finally { + delete Function.prototype.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-598.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-598.js new file mode 100644 index 0000000000..087a679827 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-598.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-598", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-598.js", + + description: "ES5 Attributes - all attributes in Object.getPrototypeOf are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "getPrototypeOf"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.getPrototypeOf; + + try { + Object.getPrototypeOf = "2010"; + + var isWritable = (Object.getPrototypeOf === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "getPrototypeOf") { + isEnumerable = true; + } + } + + delete Object.getPrototypeOf; + + var isConfigurable = !Object.hasOwnProperty("getPrototypeOf"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "getPrototypeOf", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.getPrototypeOf); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-599.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-599.js new file mode 100644 index 0000000000..db6589dccb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-599.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-599", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-599.js", + + description: "ES5 Attributes - all attributes in Object.getOwnPropertyDescriptor are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "getOwnPropertyDescriptor"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.getOwnPropertyDescriptor; + + try { + Object.getOwnPropertyDescriptor = "2010"; + + var isWritable = (Object.getOwnPropertyDescriptor === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "getOwnPropertyDescriptor") { + isEnumerable = true; + } + } + + delete Object.getOwnPropertyDescriptor; + + var isConfigurable = !Object.hasOwnProperty("getOwnPropertyDescriptor"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "getOwnPropertyDescriptor", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-6.js new file mode 100644 index 0000000000..77810b7224 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-6.js @@ -0,0 +1,72 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. Step 6 of [[DefineOwnProperty]] returns if +every field of desc also occurs in current and every field in desc has +the same value as current. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-6", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-6.js", + +description: "Object.defineProperty is no-op if current and desc are the same accessor desc", + +test: function testcase() { + function sameAccessorDescriptorValues(d1, d2) { + return (d1.get == d2.get && + d1.enumerable == d2.enumerable && + d1.configurable == d2.configurable); + } + + var o = {}; + + // create an accessor property with the following attributes: + // enumerable: true, configurable: true + var desc = { + get: function () {}, + enumerable: true, + configurable: true + }; + + Object.defineProperty(o, "foo", desc); + + // query for, and save, the desc. A subsequent call to defineProperty + // with the same desc should not disturb the property definition. + var d1 = Object.getOwnPropertyDescriptor(o, "foo"); + + // now, redefine the property with the same descriptor + // the property defintion should not get disturbed. + Object.defineProperty(o, "foo", desc); + + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + + if (sameAccessorDescriptorValues(d1, d2) === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-60.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-60.js new file mode 100644 index 0000000000..b1bf41a48b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-60.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: "15.2.3.6-4-60", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-60.js", + + description: "Object.defineProperty - type of desc.value is different from type of name.value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "foo", { value: "abc" }); + return dataPropertyAttributesAreCorrect(obj, "foo", "abc", true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-600.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-600.js new file mode 100644 index 0000000000..ea5bb9a5e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-600.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-600", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-600.js", + + description: "ES5 Attributes - all attributes in Object.getOwnPropertyNames are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "getOwnPropertyNames"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.getOwnPropertyNames; + + try { + Object.getOwnPropertyNames = "2010"; + + var isWritable = (Object.getOwnPropertyNames === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "getOwnPropertyNames") { + isEnumerable = true; + } + } + + delete Object.getOwnPropertyNames; + + var isConfigurable = !Object.hasOwnProperty("getOwnPropertyNames"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "getOwnPropertyNames", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.getOwnPropertyNames); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-601.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-601.js new file mode 100644 index 0000000000..b189cc25a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-601.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-601", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-601.js", + + description: "ES5 Attributes - all attributes in Object.create are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "create"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.create; + + try { + Object.create = "2010"; + + var isWritable = (Object.create === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "create") { + isEnumerable = true; + } + } + + delete Object.create; + + var isConfigurable = !Object.hasOwnProperty("create"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "create", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.create); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-602.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-602.js new file mode 100644 index 0000000000..da0e3a3b97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-602.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.6-4-602", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-602.js", + + description: "ES5 Attributes - all attributes in Object.defineProperty are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "defineProperty"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + var temp = Object.defineProperty; + try { + Object.defineProperty = "2010"; + + var isWritable = (Object.defineProperty === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "defineProperty") { + isEnumerable = true; + } + } + + delete Object.defineProperty; + + var isConfigurable = !Object.hasOwnProperty("defineProperty"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty = temp; + Object.defineProperty(Object, "defineProperty", { + enumerable: false + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-603.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-603.js new file mode 100644 index 0000000000..1a22164b0e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-603.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-603", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-603.js", + + description: "ES5 Attributes - all attributes in Object.defineProperties are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "defineProperties"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.defineProperties; + + try { + Object.defineProperties = "2010"; + + var isWritable = (Object.defineProperties === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "defineProperties") { + isEnumerable = true; + } + } + + delete Object.defineProperties; + + var isConfigurable = !Object.hasOwnProperty("defineProperties"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "defineProperties", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-604.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-604.js new file mode 100644 index 0000000000..443f0641de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-604.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-604", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-604.js", + + description: "ES5 Attributes - all attributes in Object.seal are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "seal"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.seal; + + try { + Object.seal = "2010"; + + var isWritable = (Object.seal === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "seal") { + isEnumerable = true; + } + } + + delete Object.seal; + + var isConfigurable = !Object.hasOwnProperty("seal"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "seal", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.seal); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-605.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-605.js new file mode 100644 index 0000000000..3bf6b8b762 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-605.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-605", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-605.js", + + description: "ES5 Attributes - all attributes in Object.freeze are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "freeze"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.freeze; + + try { + Object.freeze = "2010"; + + var isWritable = (Object.freeze === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "freeze") { + isEnumerable = true; + } + } + + delete Object.freeze; + + var isConfigurable = !Object.hasOwnProperty("freeze"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "freeze", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.freeze); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-606.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-606.js new file mode 100644 index 0000000000..f298abb70f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-606.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-606", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-606.js", + + description: "ES5 Attributes - all attributes in Object.preventExtensions are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "preventExtensions"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.preventExtensions; + + try { + Object.preventExtensions = "2010"; + + var isWritable = (Object.preventExtensions === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "preventExtensions") { + isEnumerable = true; + } + } + + delete Object.preventExtensions; + + var isConfigurable = !Object.hasOwnProperty("preventExtensions"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "preventExtensions", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.preventExtensions); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-607.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-607.js new file mode 100644 index 0000000000..5dfa572b9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-607.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-607", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-607.js", + + description: "ES5 Attributes - all attributes in Object.isSealed are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "isSealed"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.isSealed; + + try { + Object.isSealed = "2010"; + + var isWritable = (Object.isSealed === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "isSealed") { + isEnumerable = true; + } + } + + delete Object.isSealed; + + var isConfigurable = !Object.hasOwnProperty("isSealed"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "isSealed", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.isSealed); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-608.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-608.js new file mode 100644 index 0000000000..b30022368a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-608.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-608", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-608.js", + + description: "ES5 Attributes - all attributes in Object.isFrozen are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "isFrozen"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.isFrozen; + + try { + Object.isFrozen = "2010"; + + var isWritable = (Object.isFrozen === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "isFrozen") { + isEnumerable = true; + } + } + + delete Object.isFrozen; + + var isConfigurable = !Object.hasOwnProperty("isFrozen"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "isFrozen", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.isFrozen); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-609.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-609.js new file mode 100644 index 0000000000..0fb225ec97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-609.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-609", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-609.js", + + description: "ES5 Attributes - all attributes in Object.isExtensible are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "isExtensible"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.isExtensible; + + try { + Object.isExtensible = "2010"; + + var isWritable = (Object.isExtensible === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "isExtensible") { + isEnumerable = true; + } + } + + delete Object.isExtensible; + + var isConfigurable = !Object.hasOwnProperty("isExtensible"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "isExtensible", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.isExtensible); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-61.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-61.js new file mode 100644 index 0000000000..96b781895c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-61.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: "15.2.3.6-4-61", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-61.js", + + description: "Object.defineProperty - both desc.value and name.value are undefined (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { value: undefined }); + + Object.defineProperty(obj, "foo", { value: undefined }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-610.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-610.js new file mode 100644 index 0000000000..8a5310d2d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-610.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-610", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-610.js", + + description: "ES5 Attributes - all attributes in Object.keys are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Object, "keys"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Object.keys; + + try { + Object.keys = "2010"; + + var isWritable = (Object.keys === "2010"); + + var isEnumerable = false; + + for (var prop in Object) { + if (prop === "keys") { + isEnumerable = true; + } + } + + delete Object.keys; + + var isConfigurable = !Object.hasOwnProperty("keys"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Object, "keys", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.keys); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-611.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-611.js new file mode 100644 index 0000000000..05455ec6ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-611.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-611", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-611.js", + + description: "ES5 Attributes - all attributes in Function.prototype.bind are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Function.prototype, "bind"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Function.prototype.bind; + + try { + Function.prototype.bind = "2010"; + + var isWritable = (Function.prototype.bind === "2010"); + + var isEnumerable = false; + + for (var prop in Function.prototype) { + if (prop === "bind") { + isEnumerable = true; + } + } + + delete Function.prototype.bind; + + var isConfigurable = !Function.prototype.hasOwnProperty("bind"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Function.prototype, "bind", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Function.prototype.bind); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-612.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-612.js new file mode 100644 index 0000000000..0ddebe01f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-612.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-612", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-612.js", + + description: "ES5 Attributes - all attributes in Array.prototype.indexOf are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "indexOf"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.indexOf; + + try { + Array.prototype.indexOf = "2010"; + + var isWritable = (Array.prototype.indexOf === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "indexOf") { + isEnumerable = true; + } + } + + delete Array.prototype.indexOf; + + var isConfigurable = !Array.prototype.hasOwnProperty("indexOf"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "indexOf", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.indexOf); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-613.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-613.js new file mode 100644 index 0000000000..b3678baf41 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-613.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-613", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-613.js", + + description: "ES5 Attributes - all attributes in Object.lastIndexOf are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "lastIndexOf"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.lastIndexOf; + + try { + Array.prototype.lastIndexOf = "2010"; + + var isWritable = (Array.prototype.lastIndexOf === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "lastIndexOf") { + isEnumerable = true; + } + } + + delete Array.prototype.lastIndexOf; + + var isConfigurable = !Array.prototype.hasOwnProperty("lastIndexOf"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "lastIndexOf", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.lastIndexOf); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-614.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-614.js new file mode 100644 index 0000000000..98cc2a9b84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-614.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-614", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-614.js", + + description: "ES5 Attributes - all attributes in Array.prototype.every are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "every"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.every; + + try { + Array.prototype.every = "2010"; + + var isWritable = (Array.prototype.every === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "every") { + isEnumerable = true; + } + } + + delete Array.prototype.every; + + var isConfigurable = !Array.prototype.hasOwnProperty("every"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "every", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.every); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-615.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-615.js new file mode 100644 index 0000000000..7670206900 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-615.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-615", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-615.js", + + description: "ES5 Attributes - all attributes in Array.prototype.some are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "some"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.some; + + try { + Array.prototype.some = "2010"; + + var isWritable = (Array.prototype.some === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "some") { + isEnumerable = true; + } + } + + delete Array.prototype.some; + + var isConfigurable = !Array.prototype.hasOwnProperty("some"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "some", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.some); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-616.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-616.js new file mode 100644 index 0000000000..6705b98278 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-616.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-616", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-616.js", + + description: "ES5 Attributes - all attributes in Array.prototype.forEach are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "forEach"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.forEach; + + try { + Array.prototype.forEach = "2010"; + + var isWritable = (Array.prototype.forEach === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "forEach") { + isEnumerable = true; + } + } + + delete Array.prototype.forEach; + + var isConfigurable = !Array.prototype.hasOwnProperty("forEach"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "forEach", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.forEach); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-617.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-617.js new file mode 100644 index 0000000000..395e0a6020 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-617.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-617", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-617.js", + + description: "ES5 Attributes - all attributes in Array.prototype.map are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "map"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.map; + + try { + Array.prototype.map = "2010"; + + var isWritable = (Array.prototype.map === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "map") { + isEnumerable = true; + } + } + + delete Array.prototype.map; + + var isConfigurable = !Array.prototype.hasOwnProperty("map"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "map", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.map); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-618.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-618.js new file mode 100644 index 0000000000..9605cb869c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-618.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-618", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-618.js", + + description: "ES5 Attributes - all attributes in Array.prototype.filter are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "filter"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.filter; + + try { + Array.prototype.filter = "2010"; + + var isWritable = (Array.prototype.filter === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "filter") { + isEnumerable = true; + } + } + + delete Array.prototype.filter; + + var isConfigurable = !Array.prototype.hasOwnProperty("filter"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "filter", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.filter); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-619.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-619.js new file mode 100644 index 0000000000..815fb27fa2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-619.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-619", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-619.js", + + description: "ES5 Attributes - all attributes in Array.prototype.reduce are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reduce"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.reduce; + + try { + Array.prototype.reduce = "2010"; + + var isWritable = (Array.prototype.reduce === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "reduce") { + isEnumerable = true; + } + } + + delete Array.prototype.reduce; + + var isConfigurable = !Array.prototype.hasOwnProperty("reduce"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "reduce", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.reduce); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-62.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-62.js new file mode 100644 index 0000000000..df4a23bd43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-62.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: "15.2.3.6-4-62", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-62.js", + + description: "Object.defineProperty - both desc.value and name.value are null (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { value: null }); + + Object.defineProperty(obj, "foo", { value: null }); + return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-620.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-620.js new file mode 100644 index 0000000000..f9d3e3c050 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-620.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-620", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-620.js", + + description: "ES5 Attributes - all attributes in Array.prototype.reduceRight are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Array.prototype, "reduceRight"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Array.prototype.reduceRight; + + try { + Array.prototype.reduceRight = "2010"; + + var isWritable = (Array.prototype.reduceRight === "2010"); + + var isEnumerable = false; + + for (var prop in Array.prototype) { + if (prop === "reduceRight") { + isEnumerable = true; + } + } + + delete Array.prototype.reduceRight; + + var isConfigurable = !Array.prototype.hasOwnProperty("reduceRight"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Array.prototype, "reduceRight", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Array.prototype.reduceRight); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-621.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-621.js new file mode 100644 index 0000000000..0cc30284b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-621.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-621", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-621.js", + + description: "ES5 Attributes - all attributes in String.prototype.trim are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "trim"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = String.prototype.trim; + + try { + String.prototype.trim = "2010"; + + var isWritable = (String.prototype.trim === "2010"); + + var isEnumerable = false; + + for (var prop in String.prototype) { + if (prop === "trim") { + isEnumerable = true; + } + } + + delete String.prototype.trim; + + var isConfigurable = !String.prototype.hasOwnProperty("trim"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(String.prototype, "trim", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(String.prototype.trim); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-622.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-622.js new file mode 100644 index 0000000000..5fa270c902 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-622.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-622", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-622.js", + + description: "ES5 Attributes - all attributes in Date.now are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date, "now"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Date.now; + + try { + Date.now = "2010"; + + var isWritable = (Date.now === "2010"); + + var isEnumerable = false; + + for (var prop in Date) { + if (prop === "now") { + isEnumerable = true; + } + } + + delete Date.now; + + var isConfigurable = !Date.hasOwnProperty("now"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Date, "now", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Date.now); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-623.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-623.js new file mode 100644 index 0000000000..c0e093b4f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-623.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-623", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-623.js", + + description: "ES5 Attributes - all attributes in Date.prototype.toISOString are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toISOString"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Date.prototype.toISOString; + + try { + Date.prototype.toISOString = "2010"; + + var isWritable = (Date.prototype.toISOString === "2010"); + + var isEnumerable = false; + + for (var prop in Date.prototype) { + if (prop === "toISOString") { + isEnumerable = true; + } + } + + delete Date.prototype.toISOString; + + var isConfigurable = !Date.prototype.hasOwnProperty("toISOString"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Date.prototype, "toISOString", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Date.prototype.toISOString); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-624.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-624.js new file mode 100644 index 0000000000..d82b77f497 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-624.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.6-4-624", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-624.js", + + description: "ES5 Attributes - all attributes in Date.prototype.toJSON are correct", + + test: function testcase() { + var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toJSON"); + + var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true); + + var temp = Date.prototype.toJSON; + + try { + Date.prototype.toJSON = "2010"; + + var isWritable = (Date.prototype.toJSON === "2010"); + + var isEnumerable = false; + + for (var prop in Date.prototype) { + if (prop === "toJSON") { + isEnumerable = true; + } + } + + delete Date.prototype.toJSON; + + var isConfigurable = !Date.prototype.hasOwnProperty("toJSON"); + + return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable; + } finally { + Object.defineProperty(Date.prototype, "toJSON", { + value: temp, + writable: true, + enumerable: false, + configurable: true + }); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Date.prototype.toJSON); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-63.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-63.js new file mode 100644 index 0000000000..2d9172cebb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-63.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.6-4-63", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-63.js", + + description: "Object.defineProperty - both desc.value and name.value are NaN (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { value: NaN }); + + Object.defineProperty(obj, "foo", { value: NaN }); + + if (!isNaN(obj.foo)) { + return false; + } + + obj.foo = "verifyValue"; + if (obj.foo === "verifyValue") { + return false; + } + + for (var prop in obj) { + if (obj.hasOwnProperty(prop) && prop === "foo") { + return false; + } + } + + delete obj.foo; + if (!obj.hasOwnProperty("foo")) { + return false; + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-64.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-64.js new file mode 100644 index 0000000000..93a7ccc935 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-64.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-64", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-64.js", + + description: "Object.defineProperty - desc.value = +0 and name.value = -0 (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { value: -0 }); + + try { + Object.defineProperty(obj, "foo", { value: +0 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-65.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-65.js new file mode 100644 index 0000000000..9ff8d0f9bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-65.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-65", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-65.js", + + description: "Object.defineProperty - desc.value = -0 and name.value = +0 (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { value: +0 }); + + try { + Object.defineProperty(obj, "foo", { value: -0 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-66.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-66.js new file mode 100644 index 0000000000..b72f35cc68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-66.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: "15.2.3.6-4-66", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-66.js", + + description: "Object.defineProperty - desc.value and name.value are two numbers with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "foo", { value: 102 }); + return dataPropertyAttributesAreCorrect(obj, "foo", 102, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-67.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-67.js new file mode 100644 index 0000000000..4204e5a4aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-67.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: "15.2.3.6-4-67", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-67.js", + + description: "Object.defineProperty - both desc.value and name.value are two strings which have same length and same characters in corresponding positions (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { value: "abcd" }); + + Object.defineProperty(obj, "foo", { value: "abcd" }); + return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-68.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-68.js new file mode 100644 index 0000000000..5f038bfe3e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-68.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: "15.2.3.6-4-68", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-68.js", + + description: "Object.defineProperty - desc.value and name.value are two strings with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "foo", { value: "fghj" }); + return dataPropertyAttributesAreCorrect(obj, "foo", "fghj", true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-69.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-69.js new file mode 100644 index 0000000000..d78e27a24f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-69.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: "15.2.3.6-4-69", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-69.js", + + description: "Object.defineProperty - both desc.value and name.value are boolean values with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { value: true }); + + Object.defineProperty(obj, "foo", { value: true }); + return dataPropertyAttributesAreCorrect(obj, "foo", true, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-7.js new file mode 100644 index 0000000000..ee25d19131 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-7.js @@ -0,0 +1,61 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. Step 7a of [[DefineOwnProperty]] rejects if +current.[[Configurable]] is false and desc.[[Configurable]] is true. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-7", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-7.js", + +description: "Object.defineProperty throws TypeError when changing [[Configurable]] from false to true", + +test: function testcase() { + var o = {}; + + // create a data valued property; all other attributes default to false. + var d1 = { value: 101, configurable: false }; + Object.defineProperty(o, "foo", d1); + + var desc = { value: 101, configurable: true }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain unchanged. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.value === 101 && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-70.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-70.js new file mode 100644 index 0000000000..9aa75a2c7c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-70.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: "15.2.3.6-4-70", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-70.js", + + description: "Object.defineProperty - desc.value and name.value are two boolean values with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperty(obj, "foo", { value: false }); + return dataPropertyAttributesAreCorrect(obj, "foo", false, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-71.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-71.js new file mode 100644 index 0000000000..f6228b482c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-71.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: "15.2.3.6-4-71", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-71.js", + + description: "Object.defineProperty - both desc.value and name.value are Ojbects which refer to the same Object (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + + Object.defineProperty(obj, "foo", { value: obj1 }); + + Object.defineProperty(obj, "foo", { value: obj1 }); + return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-72.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-72.js new file mode 100644 index 0000000000..22e993ad1a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-72.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.6-4-72", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-72.js", + + description: "Object.defineProperty - desc.value and name.value are two Ojbects which refer to the different objects (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true + + var obj2 = { length: 20 }; + + Object.defineProperty(obj, "foo", { value: obj2 }); + return dataPropertyAttributesAreCorrect(obj, "foo", obj2, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-73.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-73.js new file mode 100644 index 0000000000..68efdfb367 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-73.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: "15.2.3.6-4-73", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-73.js", + + description: "Object.defineProperty - both desc.writable and name.writable are boolean values with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { writable: false}); + + Object.defineProperty(obj, "foo", { writable: false }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-74.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-74.js new file mode 100644 index 0000000000..a17147e5cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-74.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: "15.2.3.6-4-74", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-74.js", + + description: "Object.defineProperty - desc.writable and name.writable are two boolean values with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { writable: false, configurable: true }); + + Object.defineProperty(obj, "foo", { writable: true }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-75.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-75.js new file mode 100644 index 0000000000..5bb3132f22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-75.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-75", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-75.js", + + description: "Object.defineProperty - both desc.[[Get]] and name.[[Get]] are two objects which refer to the same object (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return 10; + } + function setFunc(value) { + obj.helpVerifySet = value; + } + + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc + }); + + Object.defineProperty(obj, "foo", { get: getFunc }); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "helpVerifySet", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-76.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-76.js new file mode 100644 index 0000000000..1739a3a5bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-76.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-76", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-76.js", + + description: "Object.defineProperty - desc.[[Get]] and name.[[Get]] are two objects which refer to the different objects (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function getFunc1() { + return 10; + } + function setFunc1(value) { + obj.helpVerifySet = value; + } + + Object.defineProperty(obj, "foo", { + get: getFunc1, + set: setFunc1, + configurable: true + }); + + function getFunc2() { + return 20; + } + + Object.defineProperty(obj, "foo", { get: getFunc2 }); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc1, "helpVerifySet", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-77.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-77.js new file mode 100644 index 0000000000..e141f8e7b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-77.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.6-4-77", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-77.js", + + description: "Object.defineProperty - both desc.[[Set]] and name.[[Set]] are two objects which refer to the same object (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { set: setFunc }); + + Object.defineProperty(obj, "foo", { set: setFunc }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-78.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-78.js new file mode 100644 index 0000000000..ed38f09e95 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-78.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-78", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-78.js", + + description: "Object.defineProperty - desc.[[Set]] and name.[[Set]] are two objects which refer to the different objects (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function setFunc1() { } + + Object.defineProperty(obj, "foo", { + set: setFunc1, + configurable: true + }); + + function setFunc2(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { set: setFunc2 }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc2, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-79.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-79.js new file mode 100644 index 0000000000..f5e2d4ded7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-79.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: "15.2.3.6-4-79", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-79.js", + + description: "Object.defineProperty - both desc.enumerable and name.enumerable are boolean values with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { enumerable: false }); + + Object.defineProperty(obj, "foo", { enumerable: false }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-8.js new file mode 100644 index 0000000000..f9ce4a8da5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-8.js @@ -0,0 +1,65 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. Step 7b of [[DefineOwnProperty]] rejects if +current.[[Enumerable]] and desc.[[Enumerable]] are the boolean negations +of each other. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-8", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-8.js", + +description: "Object.defineProperty throws TypeError when changing [[Enumerable]] from false to true on non-configurable data properties", + +test: function testcase() { + var o = {}; + + // create a data valued property; all other attributes default to false. + var d1 = { value: 101, enumerable: false, configurable: false }; + Object.defineProperty(o, "foo", d1); + + // now, setting enumerable to true should fail, since [[Configurable]] + // on the original property will be false. + var desc = { value: 101, enumerable: true }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain unchanged. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.value === 101 && + d2.enumerable === false && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-80.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-80.js new file mode 100644 index 0000000000..d5013116df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-80.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: "15.2.3.6-4-80", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-80.js", + + description: "Object.defineProperty - desc.enumerable and name.enumerable are boolean negation of each other (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { enumerable: false, configurable: true }); + + Object.defineProperty(obj, "foo", { enumerable: true }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-81.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-81.js new file mode 100644 index 0000000000..11350e8bff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-81.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: "15.2.3.6-4-81", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-81.js", + + description: "Object.defineProperty - both desc.configurable and name.configurable are booleans with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { configurable: false }); + + Object.defineProperty(obj, "foo", { configurable: false }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-1.js new file mode 100644 index 0000000000..a98c88bd5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-82-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-1.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as false, 'name' property is a data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-10.js new file mode 100644 index 0000000000..2b008d1461 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-10.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-82-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-10.js", + + description: "Object.defineProperty - Update [[Configurable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] attribute as true and [[Configurable]] attribute is false, 'name' property is an accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: true, + configurable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-11.js new file mode 100644 index 0000000000..8345f72602 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-11.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-82-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-11.js", + + description: "Object.defineProperty - Update [[Enumerable]] and [[Configurable]] attributes of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] and [[Configurable]] attributes as false, 'name' property is an accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-12.js new file mode 100644 index 0000000000..96ea00a031 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-12.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: "15.2.3.6-4-82-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-12.js", + + description: "Object.defineProperty - Update [[Enumerable]] attributes of 'name' property to true successfully when [[Enumerable]] attribute of 'name' is false and [[Configurable]] attribute of 'name' is true, the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as true, 'name' property is an accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: true + }); + + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-13.js new file mode 100644 index 0000000000..8fa28cd5a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-13.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-82-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-13.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as false, 'name' property is an index data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-14.js new file mode 100644 index 0000000000..666c67fb0b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-14.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-82-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-14.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] attribute as false and [[Configurable]] attribute as true, 'name' property is an index data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: false, + configurable: true + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-15.js new file mode 100644 index 0000000000..737db1331c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-15.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-82-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-15.js", + + description: "Object.defineProperty - Update [[Configurable]] attribute of 'name' property to false successfully when [[Configurable]] attribute of 'name' property is true, the 'desc' is a generic descriptor which contains [[Configurable]] attribute as false, 'name' property is an index data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-16.js new file mode 100644 index 0000000000..43596dbfd8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-16.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-82-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-16.js", + + description: "Object.defineProperty - Update [[Configurable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] attribute as true and [[Configurable]] attribute as false, 'name' property is an index data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: true, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-17.js new file mode 100644 index 0000000000..1787b81b50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-17.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-82-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-17.js", + + description: "Object.defineProperty - Update [[Enumerable]] and [[Configurable]] attributes of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] and [[Configurable]] attributes as false, 'name' property is an index data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: false, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-18.js new file mode 100644 index 0000000000..fee4a03197 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-18.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-82-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-18.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to true successfully when [[Enumerable]] attribute of 'name' is false and [[Configurable]] attribute of 'name' is true, the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as true, 'name' property is an index data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: true, + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: true + }); + + return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-19.js new file mode 100644 index 0000000000..efac7a7889 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-19.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: "15.2.3.6-4-82-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-19.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which only contains [Enumerable]] attribute as false and 'name' property is an index accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-2.js new file mode 100644 index 0000000000..aa5010cb66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-2.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-82-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-2.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] attribute as false and [[Configurable]] attribute as true, 'name' property is a data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: true + }); + + return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-20.js new file mode 100644 index 0000000000..9661d8a23b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-20.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-82-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-20.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [Enumerable]] attribute as false and [[Configurable]] property is true, 'name' property is an index accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: false, + configurable: true + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-21.js new file mode 100644 index 0000000000..56a606410a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-21.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: "15.2.3.6-4-82-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-21.js", + + description: "Object.defineProperty - Update [[Configurable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which only contains [[Configurable]] attribute as false, 'name' property is an index accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + configurable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-22.js new file mode 100644 index 0000000000..4dc9c03e73 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-22.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-82-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-22.js", + + description: "Object.defineProperty - Update [[Configurable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] attribute as true and [[Configurable]] attribute is false, 'name' property is an index accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: true, + configurable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-23.js new file mode 100644 index 0000000000..69b6d77f64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-23.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-82-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-23.js", + + description: "Object.defineProperty - Update [[Enumerable]] and [[Configurable]] attributes of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] and [[Configurable]] attributes as false, 'name' property is an index accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: false, + configurable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-24.js new file mode 100644 index 0000000000..b98488d9a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-24.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: "15.2.3.6-4-82-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-24.js", + + description: "Object.defineProperty - Update [[Enumerable]] attributes of 'name' property to true successfully when [[Enumerable]] attribute of 'name' is false and [[Configurable]] attribute of 'name' is true, the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as true, 'name' property is an index accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "0", { + get: get_func, + set: set_func, + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, "0", { + enumerable: true + }); + + return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-3.js new file mode 100644 index 0000000000..c1a16b20cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-3.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-82-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-3.js", + + description: "Object.defineProperty - Update [[Configurable]] attribute of 'name' property to false successfully when [[Configurable]] attribute of 'name' property is true, the 'desc' is a generic descriptor which contains [[Configurable]] attribute as false, 'name' property is a data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-4.js new file mode 100644 index 0000000000..1bb63ab2a7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-4.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-82-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-4.js", + + description: "Object.defineProperty - Update [[Configurable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] attribute as true and [[Configurable]] attribute as false, 'name' property is a data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: true, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-5.js new file mode 100644 index 0000000000..6d47c0f178 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-5.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.6-4-82-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-5.js", + + description: "Object.defineProperty - Update [[Enumerable]] and [[Configurable]] attributes of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [[Enumerable]] and [[Configurable]] attributes as false, 'name' property is a data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: false + }); + + return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-6.js new file mode 100644 index 0000000000..40c056b5e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-6.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-82-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-6.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to true successfully when [[Enumerable]] attribute of 'name' is false and [[Configurable]] attribute of 'name' is true, the 'desc' is a generic descriptor which only contains [[Enumerable]] attribute as true, 'name' property is a data property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 1001, + writable: true, + enumerable: false, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: true + }); + + return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-7.js new file mode 100644 index 0000000000..a020918e09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-7.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: "15.2.3.6-4-82-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-7.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which only contains [Enumerable]] attribute as false and 'name' property is an accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-8.js new file mode 100644 index 0000000000..4301ed2213 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-8.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-82-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-8.js", + + description: "Object.defineProperty - Update [[Enumerable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which contains [Enumerable]] attribute as false and [[Configurable]] property is true, 'name' property is an accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + enumerable: false, + configurable: true + }); + + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-9.js new file mode 100644 index 0000000000..d4e5293394 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-9.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: "15.2.3.6-4-82-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82-9.js", + + description: "Object.defineProperty - Update [[Configurable]] attribute of 'name' property to false successfully when [[Enumerable]] and [[Configurable]] attributes of 'name' property are true, the 'desc' is a generic descriptor which only contains [[Configurable]] attribute as false, 'name' property is an accessor property (8.12.9 step 8)", + + test: function testcase() { + + var obj = {}; + obj.verifySetFunction = "data"; + var get_func = function () { + return obj.verifySetFunction; + }; + var set_func = function (value) { + obj.verifySetFunction = value; + }; + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperty(obj, "foo", { + configurable: false + }); + + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82.js new file mode 100644 index 0000000000..a0deceb85e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82.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: "15.2.3.6-4-82", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-82.js", + + description: "Object.defineProperty - desc.configurable and name.configurable are boolean negation of each other (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { configurable: true }); + + Object.defineProperty(obj, "foo", { configurable: false }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-83.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-83.js new file mode 100644 index 0000000000..3107869af6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-83.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-83", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-83.js", + + description: "Object.defineProperty will not throw TypeError if name.configurable = false, name.writable = false, name.value = undefined and desc.value = undefined (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: undefined, + writable: false, + configurable: false + }); + + Object.defineProperty(obj, "foo", { + value: undefined, + writable: false, + configurable: false + }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-84.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-84.js new file mode 100644 index 0000000000..48a234e9dc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-84.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-84", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-84.js", + + description: "Object.defineProperty will not throw TypeError if name.configurable = false, name.writable = false, name.value = null and desc.value = null (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: null, + writable: false, + configurable: false + }); + + Object.defineProperty(obj, "foo", { + value: null, + writable: false, + configurable: false + }); + return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-85.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-85.js new file mode 100644 index 0000000000..8d424bff74 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-85.js @@ -0,0 +1,70 @@ +/// 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: "15.2.3.6-4-85", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-85.js", + + description: "Object.defineProperty will not throw TypeError if name.configurable = false, name.writable = false, name.value = NaN and desc.value = NaN (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: NaN, + writable: false, + configurable: false + }); + + Object.defineProperty(obj, "foo", { + value: NaN, + writable: false, + configurable: false + }); + + if (!isNaN(obj.foo)) { + return false; + } + + obj.foo = "verifyValue"; + if (obj.foo === "verifyValue") { + return false; + } + + for (var prop in obj) { + if (obj.hasOwnProperty(prop) && prop === "foo") { + return false; + } + } + + delete obj.foo; + if (!obj.hasOwnProperty("foo")) { + return false; + } + + return true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-86.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-86.js new file mode 100644 index 0000000000..6fd56e8602 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-86.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-86", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-86.js", + + description: "Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value = +0 and name.value = -0 (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: -0, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: +0 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); + + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-87.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-87.js new file mode 100644 index 0000000000..73edcebb71 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-87.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-87", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-87.js", + + description: "Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value = -0 and name.value = +0 (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: +0, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: -0 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-88.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-88.js new file mode 100644 index 0000000000..935adf7e56 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-88.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-88", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-88.js", + + description: "Object.defineProperty will not throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two numbers with the same value (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 100, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: 100 }); + return dataPropertyAttributesAreCorrect(obj, "foo", 100, false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-89.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-89.js new file mode 100644 index 0000000000..c647f80730 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-89.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-89", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-89.js", + + description: "Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two numbers with different values (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: 20 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-9.js new file mode 100644 index 0000000000..65e14f94b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-9.js @@ -0,0 +1,66 @@ +/// 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. + +/* +Step 4 of defineProperty calls the [[DefineOwnProperty]] internal method +of O to define the property. Step 7b of [[DefineOwnProperty]] rejects if +current.[[Enumerable]] and desc.[[Enumerable]] are the boolean negations +of each other. +*/ + +ES5Harness.registerTest( { +id: "15.2.3.6-4-9", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-9.js", + +description: "Object.defineProperty throws TypeError when changing [[Enumerable]] from true to false on non-configurable data properties", + +test: function testcase() { + var o = {}; + + // create a data valued property with [[Enumerable]] explicitly set to true; + // all other attributes default to false. + var d1 = { value: 101, enumerable: true, configurable: false }; + Object.defineProperty(o, "foo", d1); + + // now, setting enumerable to false should fail, since [[Configurable]] + // on the original property will be false. + var desc = { value: 101, enumerable: false }; + + try { + Object.defineProperty(o, "foo", desc); + } + catch (e) { + if (e instanceof TypeError) { + // the property should remain unchanged. + var d2 = Object.getOwnPropertyDescriptor(o, "foo"); + if (d2.value === 101 && + d2.enumerable === true && + d2.configurable === false) { + return true; + } + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-90.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-90.js new file mode 100644 index 0000000000..311562f80b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-90.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-90", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-90.js", + + description: "Object.defineProperty will not throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two strings with the same value (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: "abcd", + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: "abcd" }); + return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-91.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-91.js new file mode 100644 index 0000000000..fb8f6e887b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-91.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-91", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-91.js", + + description: "Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two strings with different values (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: "abcd", + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: "fghj" }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-92.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-92.js new file mode 100644 index 0000000000..ccb28d9e26 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-92.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-92", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-92.js", + + description: "Object.defineProperty will not throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two booleans with the same value (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: false, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: false }); + return dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-93.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-93.js new file mode 100644 index 0000000000..56550641a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-93.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.6-4-93", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-93.js", + + description: "Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two booleans with different values (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: false, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: true }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-94.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-94.js new file mode 100644 index 0000000000..ff898e534f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-94.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.6-4-94", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-94.js", + + description: "Object.defineProperty will not throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two Objects refer to the same object (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + + Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { value: obj1 }); + return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-95.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-95.js new file mode 100644 index 0000000000..44cdd21b65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-95.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.6-4-95", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-95.js", + + description: "Object.defineProperty will throw TypeError when name.configurable = false, name.writable = false, desc.value and name.value are two objects which refer to the different objects (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + + Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false + }); + + var obj2 = { length: 20 }; + + try { + Object.defineProperty(obj, "foo", { value: obj2 }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-96.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-96.js new file mode 100644 index 0000000000..2cae831543 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-96.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.6-4-96", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-96.js", + + description: "Object.defineProperty will not throw TypeError when name.configurable = false, both desc.[[Set]] and name.[[Set]] are two objects which refer to the same object (8.12.9 step 11.a.i)", + + test: function testcase() { + + var obj = {}; + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: setFunc, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { set: setFunc }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-97.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-97.js new file mode 100644 index 0000000000..1dc4500fe2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-97.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.6-4-97", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-97.js", + + description: "Object.defineProperty will throw TypeError when name.configurable = false, name.[[Set]] is undefined, desc.[[Set]] refers to an object (8.12.9 step 11.a.i)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return "property"; + } + + Object.defineProperty(obj, "property", { + get: getFunc, + configurable: false + }); + + try { + Object.defineProperty(obj, "property", { + get: getFunc, + set: function () { }, + configurable: false + }); + + return false; + } catch (e) { + return e instanceof TypeError && + accessorPropertyAttributesAreCorrect(obj, "property", getFunc, undefined, undefined, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-98.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-98.js new file mode 100644 index 0000000000..203ae8c49b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-98.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.6-4-98", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-98.js", + + description: "Object.defineProperty will not throw TypeError when name.configurable = false, both desc.[[Get]] and name.[[Get]] are two objects which refer to the same object (8.12.9 step 11.a.ii)", + + test: function testcase() { + + var obj = {}; + + function getFunc() { + return 10; + } + function setFunc(value) { + obj.verifyGetHelpMethod = value; + } + + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + configurable: false + }); + + try { + Object.defineProperty(obj, "foo", { get: getFunc }); + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "verifyGetHelpMethod", false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-99.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-99.js new file mode 100644 index 0000000000..fd1d73e519 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-99.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.6-4-99", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-99.js", + + description: "Object.defineProperty will throw TypeError when name.configurable = false, name.[[Get]] is undefined, desc.[[Get]] refers to an objcet (8.12.9 step 11.a.ii)", + + test: function testcase() { + + var obj = {}; + + function setFunc(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: setFunc, + configurable: false + }); + + function getFunc() { + return 10; + } + + try { + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc + }); + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-0-1.js new file mode 100644 index 0000000000..81d5cbcc7f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.7-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-0-1.js", + +description: "Object.defineProperties must exist as a function", + +test: function testcase() { + var f = Object.defineProperties; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-0-2.js new file mode 100644 index 0000000000..6eef5f0deb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.7-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-0-2.js", + +description: "Object.defineProperties must exist as a function taking 2 parameters", + +test: function testcase() { + if (Object.defineProperties.length === 2) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-1.js new file mode 100644 index 0000000000..755f7d6754 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-1.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: "15.2.3.7-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-1.js", + + description: "Object.defineProperties throws TypeError if 'O' is undefined", + + test: function testcase() { + + try { + Object.defineProperties(undefined, {}); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-2.js new file mode 100644 index 0000000000..52d0ce2f56 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-2.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: "15.2.3.7-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-2.js", + + description: "Object.defineProperties throws TypeError if 'O' is null", + + test: function testcase() { + + try { + Object.defineProperties(null, {}); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-3.js new file mode 100644 index 0000000000..6e8b115ddd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-3.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: "15.2.3.7-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-3.js", + + description: "Object.defineProperties throws TypeError if 'O' is a boolean", + + test: function testcase() { + + try { + Object.defineProperties(true, {}); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-4.js new file mode 100644 index 0000000000..20a19d4c0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-4.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: "15.2.3.7-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1-4.js", + + description: "Object.defineProperties throws TypeError if 'O' is a string", + + test: function testcase() { + + try { + Object.defineProperties("abc", {}); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1.js new file mode 100644 index 0000000000..6edf69eaf3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1.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: "15.2.3.7-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-1.js", + +description: "Object.defineProperties throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.defineProperties(0, {}); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-1.js new file mode 100644 index 0000000000..88c2efd6ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-1.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: "15.2.3.7-2-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-1.js", + + description: "Object.defineProperties throws TypeError if 'Properties' is null", + + test: function testcase() { + + try { + Object.defineProperties({}, null); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-10.js new file mode 100644 index 0000000000..e13bf81896 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-10.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-2-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-10.js", + + description: "Object.defineProperties - argument 'Properties' is an Array object", + + test: function testcase() { + + var obj = {}; + var props = []; + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Array; + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-11.js new file mode 100644 index 0000000000..c42ae0f256 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-11.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-2-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-11.js", + + description: "Object.defineProperties - argument 'Properties' is the Math object", + + test: function testcase() { + + var obj = {}; + var result = false; + + try { + Object.defineProperty(Math, "prop", { + get: function () { + result = (this === Math); + return {}; + }, + enumerable: true, + configurable: true + }); + + Object.defineProperties(obj, Math); + return result; + } finally { + delete Math.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-12.js new file mode 100644 index 0000000000..2474b03ada --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-12.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-2-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-12.js", + + description: "Object.defineProperties - argument 'Properties' is a Date object", + + test: function testcase() { + + var obj = {}; + var props = new Date(); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Date; + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-13.js new file mode 100644 index 0000000000..cd43e383b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-13.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-2-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-13.js", + + description: "Object.defineProperties - argument 'Properties' is a RegExp object", + + test: function testcase() { + + var obj = {}; + var props = new RegExp(); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof RegExp; + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-14.js new file mode 100644 index 0000000000..8f733ba3bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-14.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-2-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-14.js", + + description: "Object.defineProperties - argument 'Properties' is the JSON object", + + test: function testcase() { + + var obj = {}; + var result = false; + + try { + Object.defineProperty(JSON, "prop", { + get: function () { + result = (this === JSON); + return {}; + }, + enumerable: true, + configurable: true + }); + + Object.defineProperties(obj, JSON); + return result; + } finally { + delete JSON.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-15.js new file mode 100644 index 0000000000..b267f5e639 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-15.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-2-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-15.js", + + description: "Object.defineProperties - argument 'Properties' is an Error object", + + test: function testcase() { + + var obj = {}; + var props = new Error("test"); + var obj1 = { + value: 11 + }; + props.description = obj1; + props.message = obj1; + props.name = obj1; + + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Error; + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-16.js new file mode 100644 index 0000000000..f549d52bdb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-16.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-2-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-16.js", + + description: "Object.defineProperties - argument 'Properties' is the Arguments object", + + test: function testcase() { + + var obj = {}; + var result = false; + + var Fun = function () { + return arguments; + }; + var props = new Fun(); + + Object.defineProperty(props, "prop", { + get: function () { + result = ('[object Arguments]' === Object.prototype.toString.call(this)); + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-18.js new file mode 100644 index 0000000000..1fea94a92e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-18.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-2-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-18.js", + + description: "Object.defineProperties - argument 'Properties' is the global object", + + test: function testcase() { + + var obj = {}; + var result = false; + + try { + Object.defineProperty(fnGlobalObject(), "prop", { + get: function () { + result = (this === fnGlobalObject()); + return {}; + }, + enumerable: true, + configurable:true + }); + + Object.defineProperties(obj, fnGlobalObject()); + return result; + } catch (e) { + return (e instanceof TypeError); + } finally { + delete fnGlobalObject().prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-2.js new file mode 100644 index 0000000000..8f6899037d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-2.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: "15.2.3.7-2-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-2.js", + + description: "Object.defineProperties throws TypeError if 'Properties' is undefined", + + test: function testcase() { + + try { + Object.defineProperties({}, undefined); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-3.js new file mode 100644 index 0000000000..0ae28bed08 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-3.js @@ -0,0 +1,39 @@ +/// 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: "15.2.3.7-2-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-3.js", + + description: "Object.defineProperties - argument 'Properties' is a boolean whose value is false", + + test: function testcase() { + + var obj = {}; + var obj1 = Object.defineProperties(obj, false); + return obj === obj1; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-4.js new file mode 100644 index 0000000000..35b5a9feae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-4.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-2-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-4.js", + + description: "Object.defineProperties - argument 'Properties' is a Boolean object whose primitive value is true", + + test: function testcase() { + + var obj = {}; + var props = new Boolean(true); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Boolean; + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-5.js new file mode 100644 index 0000000000..78e92496c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-5.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.7-2-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-5.js", + + description: "Object.defineProperties - argument 'Properties' is any interesting number", + + test: function testcase() { + + var obj = { "123": 100 }; + var obj1 = Object.defineProperties(obj, -12); + return obj === obj1; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-6.js new file mode 100644 index 0000000000..e8179c4bba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-6.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-2-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-6.js", + + description: "Object.defineProperties - argument 'Properties' is a Number object whose primitive value is any interesting number", + + test: function testcase() { + + var obj = {}; + var props = new Number(-12); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Number; + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-7.js new file mode 100644 index 0000000000..07eb0a6e73 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-7.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.7-2-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-7.js", + + description: "Object.defineProperties - argument 'Properties' is a string whose value is any interesting string", + + test: function testcase() { + + var obj = { "123": 100 }; + var obj1 = Object.defineProperties(obj, ""); + return obj === obj1; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-8.js new file mode 100644 index 0000000000..9df2a87647 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-8.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-2-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-8.js", + + description: "Object.defineProperties - argument 'Properties' is a String object whose primitive value is any interesting string", + + test: function testcase() { + + var obj = {}; + var props = new String(); + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof String; + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-9.js new file mode 100644 index 0000000000..e3815d074f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-9.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-2-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-2-9.js", + + description: "Object.defineProperties - argument 'Properties' is a Function object", + + test: function testcase() { + + var obj = {}; + var props = function () { }; + var result = false; + + Object.defineProperty(props, "prop", { + get: function () { + result = this instanceof Function; + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + return result; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-1.js new file mode 100644 index 0000000000..0cd6340ace --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-3-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-1.js", + + description: "Object.defineProperties - enumerable own data property of 'Properties' is defined in 'O' ", + + test: function testcase() { + + var obj = {}; + var props = {}; + Object.defineProperty(props, "prop", { + value: {}, + enumerable: true + }); + + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-2.js new file mode 100644 index 0000000000..a1a7982299 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-2.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-3-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-2.js", + + description: "Object.defineProperties - own data property of 'Properties' which is not enumerable is not defined in 'O' ", + + test: function testcase() { + + var obj = {}; + var props = {}; + + Object.defineProperty(props, "prop", { + value: {}, + enumerable: false + }); + + Object.defineProperties(obj, props); + + return !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-3.js new file mode 100644 index 0000000000..67698c20e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-3.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-3-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-3.js", + + description: "Object.defineProperties - enumerable inherited data property of 'Properties' is not defined in 'O' ", + + test: function testcase() { + + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "prop", { + value: {}, + enumerable: true + }); + + var Con = function () { }; + Con.prototype = proto; + var child = new Con(); + + Object.defineProperties(obj, child); + + return !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-4.js new file mode 100644 index 0000000000..6e8170cb9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-4.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-3-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-4.js", + + description: "Object.defineProperties - enumerable own accessor property of 'Properties' is defined in 'O' ", + + test: function testcase() { + + var obj = {}; + + var props = {}; + + Object.defineProperty(props, "prop", { + get: function () { + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-5.js new file mode 100644 index 0000000000..939e48fa1b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-5.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-3-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-5.js", + + description: "Object.defineProperties - own accessor property of 'Properties' which is not enumerable is not defined in 'O' ", + + test: function testcase() { + + var obj = {}; + + var props = {}; + + Object.defineProperty(props, "prop", { + get: function () { + return {}; + }, + enumerable: false + }); + + Object.defineProperties(obj, props); + + return !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-6.js new file mode 100644 index 0000000000..db6cec60e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-6.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-3-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-6.js", + + description: "Object.defineProperties - enumerable inherited accessor property of 'Properties' is not defined in 'O' ", + + test: function testcase() { + + var obj = {}; + var proto = {}; + + Object.defineProperty(proto, "prop", { + get: function () { + return {}; + }, + enumerable: true + }); + + var Con = function () { }; + Con.prototype = proto; + var child = new Con(); + + Object.defineProperties(obj, child); + + return !obj.hasOwnProperty("prop"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-7.js new file mode 100644 index 0000000000..c44f6e533a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-7.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: "15.2.3.7-3-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-7.js", + + description: "Object.defineProperties - no additional property is defined in 'O' when 'Properties' doesn't contain enumerable own property ", + + test: function testcase() { + + var obj = {}; + + var props = {}; + + Object.defineProperty(props, "prop1", { + value: {}, + enumerable: false + }); + + Object.defineProperty(props, "prop2", { + get: function () { + return {}; + }, + enumerable: false + }); + + Object.defineProperties(obj, props); + + return !obj.hasOwnProperty("prop1") && !obj.hasOwnProperty("prop2"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-8.js new file mode 100644 index 0000000000..fa778f6da4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-8.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: "15.2.3.7-3-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-3-8.js", + + description: "Object.defineProperties - no additional property is defined in 'O' when 'Properties' doesn't contain enumerable own property ", + + test: function testcase() { + + var obj = {}; + + var props = {}; + + Object.defineProperty(props, "prop1", { + value: {}, + enumerable: false + }); + + Object.defineProperty(props, "prop2", { + get: function () { + return {}; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + + return !obj.hasOwnProperty("prop1") && obj.hasOwnProperty("prop2"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-1.js new file mode 100644 index 0000000000..6c74bc9779 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-1.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-5-a-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-1.js", + + description: "Object.defineProperties - 'P' is own data property that overrides enumerable inherited data property of 'Properties' is defined in 'O' ", + + test: function testcase() { + + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "prop", { + value: { + value: 9 + }, + enumerable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "prop", { + value: { + value: 12 + }, + enumerable: true + }); + + Object.defineProperties(obj, child); + + return obj.hasOwnProperty("prop") && obj.prop === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-10.js new file mode 100644 index 0000000000..a7d0a85047 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-10.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-a-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-10.js", + + description: "Object.defineProperties - 'Properties' is a Boolean object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var props = new Boolean(false); + + Object.defineProperty(props, "prop", { + value: { + value: 10 + }, + enumerable: true + }); + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && obj.prop === 10; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-11.js new file mode 100644 index 0000000000..6d307aa77f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-11.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-a-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-11.js", + + description: "Object.defineProperties - 'Properties' is a Number object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var props = new Number(-9); + + Object.defineProperty(props, "prop", { + value: { + value: 12 + }, + enumerable: true + }); + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && obj.prop === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-12.js new file mode 100644 index 0000000000..0e6fe4c069 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-12.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-a-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-12.js", + + description: "Object.defineProperties - 'Properties' is the Math object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + + try { + Math.prop = { + value: 12 + }; + Object.defineProperties(obj, Math); + + return obj.hasOwnProperty("prop") && obj.prop === 12; + } finally { + delete Math.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-13.js new file mode 100644 index 0000000000..389d635e4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-13.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-a-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-13.js", + + description: "Object.defineProperties - 'Properties' is a Date object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var props = new Date(); + + Object.defineProperty(props, "prop", { + value: { + value: 13 + }, + enumerable: true + }); + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && obj.prop === 13; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-14.js new file mode 100644 index 0000000000..f6dacd6c0f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-14.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-a-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-14.js", + + description: "Object.defineProperties - 'Properties' is a RegExp object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var props = new RegExp(); + + Object.defineProperty(props, "prop", { + value: { + value: 14 + }, + enumerable: true + }); + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && obj.prop === 14; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-15.js new file mode 100644 index 0000000000..150d52f91a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-15.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-5-a-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-15.js", + + description: "Object.defineProperties - 'Properties' is the JSON object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + var obj = {}; + + try { + JSON.prop = { + value: 15 + }; + Object.defineProperties(obj, JSON); + + return obj.hasOwnProperty("prop") && obj.prop === 15; + } finally { + delete JSON.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-16.js new file mode 100644 index 0000000000..4fb13211aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-16.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-a-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-16.js", + + description: "Object.defineProperties - 'Properties' is an Error object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var props = new Error("test"); + var obj1 = { + value: 11 + }; + props.message = obj1; + props.name = obj1; + props.description = obj1; + + props.prop = { + value: 16 + }; + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && obj.prop === 16; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-17.js new file mode 100644 index 0000000000..3a6f87070e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-17.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-a-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-17.js", + + description: "Object.defineProperties - 'Properties' is the Arguments object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var arg; + + (function fun() { + arg = arguments; + }()); + + Object.defineProperty(arg, "prop", { + value: { + value: 17 + }, + enumerable: true + }); + + Object.defineProperties(obj, arg); + + return obj.hasOwnProperty("prop") && obj.prop === 17; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-2.js new file mode 100644 index 0000000000..e8bec4b00a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-2.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-5-a-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-2.js", + + description: "Object.defineProperties - 'P' is own data property that overrides enumerable inherited accessor property of 'Properties' is defined in 'O' ", + + test: function testcase() { + + var obj = {}; + var proto = {}; + + Object.defineProperty(proto, "prop", { + get: function () { + return { + value: 9 + }; + }, + enumerable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "prop", { + value: { + value: 12 + }, + enumerable: true + }); + Object.defineProperties(obj, child); + + return obj.hasOwnProperty("prop") && obj.prop === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-3.js new file mode 100644 index 0000000000..be6966aeff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-3.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-5-a-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-3.js", + + description: "Object.defineProperties - enumerable own accessor property of 'Properties' that overrides enumerable inherited data property of 'Properties' is defined in 'O' ", + + test: function testcase() { + + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "prop", { + value: { + value: 9 + }, + enumerable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "prop", { + get: function () { + return { + value: 12 + }; + }, + enumerable: true + }); + Object.defineProperties(obj, child); + + return obj.hasOwnProperty("prop") && obj.prop === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-4.js new file mode 100644 index 0000000000..b4a937e124 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-4.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.7-5-a-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-4.js", + + description: "Object.defineProperties - enumerable own accessor property of 'Properties' that overrides enumerable inherited accessor property of 'Properties' is defined in 'O' ", + + test: function testcase() { + + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "prop", { + get: function () { + return { + value: 9 + }; + }, + enumerable: false + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "prop", { + get: function () { + return { + value: 12 + }; + }, + enumerable: true + }); + Object.defineProperties(obj, child); + + return obj.hasOwnProperty("prop") && obj.prop === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-5.js new file mode 100644 index 0000000000..0c47afbf77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-5.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-a-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-5.js", + + description: "Object.defineProperties - enumerable own accessor property of 'Properties' without a get function is defined in 'O' ", + + test: function testcase() { + + var obj = {}; + + var props = {}; + Object.defineProperty(props, "prop", { + get: function () { + return { + set: function () { } + }; + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && typeof obj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-6.js new file mode 100644 index 0000000000..0fe30a0aa9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-6.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-5-a-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-6.js", + + description: "Object.defineProperties - enumerable own accessor property of 'Properties' without a get function that overrides enumerable inherited accessor property of 'Properties' is defined in 'O' ", + + test: function testcase() { + + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "prop", { + get: function () { + return 12; + }, + enumerable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "prop", { + get: function () { + return { + set: function () { } + }; + }, + enumerable: true + }); + Object.defineProperties(obj, child); + + return obj.hasOwnProperty("prop") && typeof obj.prop === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-7.js new file mode 100644 index 0000000000..b070e7a62f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-7.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-a-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-7.js", + + description: "Object.defineProperties - 'Properties' is a Function object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var props = function () { }; + + Object.defineProperty(props, "prop", { + value: { + value: 7 + }, + enumerable: true + }); + + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && obj.prop === 7; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-8.js new file mode 100644 index 0000000000..257e252c1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-8.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-a-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-8.js", + + description: "Object.defineProperties - 'Properties' is an Array object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var props = []; + var descObj = { + value: 8 + }; + + Object.defineProperty(props, "prop", { + value: descObj, + enumerable: true + }); + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && obj.prop === 8; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-9.js new file mode 100644 index 0000000000..f128d5bffa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-9.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-a-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-a-9.js", + + description: "Object.defineProperties - 'Properties' is a String object which implements its own [[Get]] method to get enumerable own property", + + test: function testcase() { + + var obj = {}; + var props = new String(); + + Object.defineProperty(props, "prop", { + value: { + value: 9 + }, + enumerable: true + }); + Object.defineProperties(obj, props); + + return obj.hasOwnProperty("prop") && obj.prop === 9; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-1.js new file mode 100644 index 0000000000..2a9f28ae18 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-1.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-1.js", + + description: "Object.defineProperties - 'descObj' is undefined (8.10.5 step 1)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: undefined + }); + return false; + } catch (e) { + return e instanceof TypeError && !obj.hasOwnProperty("prop"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-10.js new file mode 100644 index 0000000000..68d55a9aaf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-10.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-5-b-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-10.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is own data property that overrides an inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + var proto = { + enumerable: true + }; + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "enumerable", { + value: false + }); + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-100.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-100.js new file mode 100644 index 0000000000..93d2624e5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-100.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-5-b-100", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-100.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is Boolean object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: new Boolean(true) + } + }); + + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-101.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-101.js new file mode 100644 index 0000000000..4e696952e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-101.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-101", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-101.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is Number object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: new Number(-123) + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-102.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-102.js new file mode 100644 index 0000000000..547bff1ec4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-102.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-102", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-102.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is the Math object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: Math + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-103.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-103.js new file mode 100644 index 0000000000..5650ed9696 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-103.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-103", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-103.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is Date object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: new Date() + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-104.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-104.js new file mode 100644 index 0000000000..afc7faa961 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-104.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-5-b-104", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-104.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is RegExp object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: new RegExp() + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-105.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-105.js new file mode 100644 index 0000000000..af3176de80 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-105.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-105", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-105.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is the JSON object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: JSON + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-106.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-106.js new file mode 100644 index 0000000000..976d26a266 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-106.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-106", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-106.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is Error object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: new SyntaxError() + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-107.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-107.js new file mode 100644 index 0000000000..7a26c52eac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-107.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-107", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-107.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is the Argument object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + var func = function (a, b, c) { + return arguments; + }; + + var args = func(1, true, "a"); + + Object.defineProperties(obj, { + property: { + configurable: args + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-109.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-109.js new file mode 100644 index 0000000000..60f4e95cac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-109.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-109", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-109.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is the global object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: fnGlobalObject() + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-11.js new file mode 100644 index 0000000000..0f13454fd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-11.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.7-5-b-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-11.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is own data property that overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + var accessed = false; + + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "enumerable", { + value: false + }); + + Object.defineProperties(obj, { + prop: descObj + }); + + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-110.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-110.js new file mode 100644 index 0000000000..d5246caf4b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-110.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-110", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-110.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is a string (value is 'false') which is treated as true value (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: "false" + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-111.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-111.js new file mode 100644 index 0000000000..c8d8930126 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-111.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-111", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-111.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is new Boolean(false) which is treated as true value (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: new Boolean(false) + } + }); + var preCheck = obj.hasOwnProperty("property"); + delete obj.property; + + return preCheck && !obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-112.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-112.js new file mode 100644 index 0000000000..ab7b39fdc7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-112.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.7-5-b-112", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-112.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is present (8.10.5 step 5)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + value: 300 + } + }); + + return obj.property === 300; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-113.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-113.js new file mode 100644 index 0000000000..c3b58c6dba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-113.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.7-5-b-113", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-113.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is not present (8.10.5 step 5)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: true + } + }); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-114.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-114.js new file mode 100644 index 0000000000..a6972e38b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-114.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.7-5-b-114", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-114.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is own data property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + value: "ownDataProperty" + } + }); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-115.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-115.js new file mode 100644 index 0000000000..fcfc966686 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-115.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-5-b-115", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-115.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + value: "inheritedDataProperty" + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "inheritedDataProperty"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-116.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-116.js new file mode 100644 index 0000000000..d517a9ef51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-116.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-5-b-116", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-116.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is own data property that overrides an inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + value: "inheritedDataProperty" + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + descObj.value = "ownDataProperty"; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownDataProperty"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-117.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-117.js new file mode 100644 index 0000000000..752e5f2976 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-117.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-5-b-117", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-117.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is own data property that overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "value", { + value: "ownDataProperty" + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownDataProperty"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-118.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-118.js new file mode 100644 index 0000000000..757a8e645d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-118.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-118", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-118.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is own accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var descObj = {}; + + Object.defineProperty(descObj, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-119.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-119.js new file mode 100644 index 0000000000..b738a609fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-119.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-5-b-119", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-119.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "inheritedAccessorProperty"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-12.js new file mode 100644 index 0000000000..a54c4b0820 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-12.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: "15.2.3.7-5-b-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-12.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is own accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + var descObj = {}; + + Object.defineProperty(descObj, "enumerable", { + get: function () { + return true; + } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-120.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-120.js new file mode 100644 index 0000000000..7450c57992 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-120.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-5-b-120", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-120.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is own accessor property that overrides an inherited data property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + value: "inheritedDataProperty" + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownAccessorProperty"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-121.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-121.js new file mode 100644 index 0000000000..3d9cf3ce33 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-121.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-5-b-121", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-121.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is own accessor property that overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "value", { + get: function () { + return "ownAccessorProperty"; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownAccessorProperty"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-122.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-122.js new file mode 100644 index 0000000000..ef7d6e0b2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-122.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-122", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-122.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is own accessor property without a get function (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var descObj = {}; + + Object.defineProperty(descObj, "value", { + set: function () { } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-123.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-123.js new file mode 100644 index 0000000000..7e31feab96 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-123.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-5-b-123", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-123.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is own accessor property without a get function that overrides an inherited accessor property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "value", { + get: function () { + return "inheritedAccessorProperty"; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "value", { + set: function () { } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-124.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-124.js new file mode 100644 index 0000000000..576ef765f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-124.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-124", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-124.js", + + description: "Object.defineProperties - 'value' property of 'descObj' is inherited accessor property without a get function (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "value", { + set: function () { } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-125.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-125.js new file mode 100644 index 0000000000..c425f980df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-125.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-125", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-125.js", + + + description: "Object.defineProperties - 'descObj' is a Function object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var func = function (a, b) { + return a + b; + }; + + func.value = "Function"; + + Object.defineProperties(obj, { + property: func + }); + + return obj.property === "Function"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-126.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-126.js new file mode 100644 index 0000000000..64c60a2fdd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-126.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-126", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-126.js", + + description: "Object.defineProperties - 'descObj' is an Array object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var arr = [1, 2, 3]; + + arr.value = "Array"; + + Object.defineProperties(obj, { + property: arr + }); + + return obj.property === "Array"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-127.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-127.js new file mode 100644 index 0000000000..eaa13b27b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-127.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-127", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-127.js", + + description: "Object.defineProperties - 'descObj' is a String object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var str = new String("abc"); + + str.value = "String"; + + Object.defineProperties(obj, { + property: str + }); + + return obj.property === "String"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-128.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-128.js new file mode 100644 index 0000000000..0f6a6da71b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-128.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-128", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-128.js", + + description: "Object.defineProperties - 'descObj' is a Boolean object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Boolean(false); + + descObj.value = "Boolean"; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "Boolean"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-129.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-129.js new file mode 100644 index 0000000000..9792562648 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-129.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-129", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-129.js", + + description: "Object.defineProperties - 'descObj' is a Number object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Number(-9); + + descObj.value = "Number"; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "Number"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-13.js new file mode 100644 index 0000000000..fa37390f72 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-13.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-5-b-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-13.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + var accessed = false; + + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-130.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-130.js new file mode 100644 index 0000000000..58a40e237c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-130.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-130", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-130.js", + + description: "Object.defineProperties - 'descObj' is the Math object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + try { + Math.value = "Math"; + + Object.defineProperties(obj, { + property: Math + }); + + return obj.property === "Math"; + } finally { + delete Math.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-131.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-131.js new file mode 100644 index 0000000000..0b001264b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-131.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-131", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-131.js", + + description: "Object.defineProperties - 'descObj' is a Date object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Date(); + + descObj.value = "Date"; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "Date"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-132.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-132.js new file mode 100644 index 0000000000..f12f285569 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-132.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-132", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-132.js", + + description: "Object.defineProperties - 'descObj' is a RegExp object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new RegExp(); + + descObj.value = "RegExp"; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "RegExp"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-133.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-133.js new file mode 100644 index 0000000000..701bafcc69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-133.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-133", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-133.js", + + description: "Object.defineProperties - 'descObj' is the JSON object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + try { + JSON.value = "JSON"; + + Object.defineProperties(obj, { + property: JSON + }); + + return obj.property === "JSON"; + } finally { + delete JSON.value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-134.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-134.js new file mode 100644 index 0000000000..64cc900fb2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-134.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-134", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-134.js", + + description: "Object.defineProperties - 'descObj' is an Error object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Error(); + + descObj.value = "Error"; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "Error"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-135.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-135.js new file mode 100644 index 0000000000..144d71e054 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-135.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-135", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-135.js", + + description: "Object.defineProperties - 'descObj' is the Arguments object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + var func = function (a, b) { + arguments.value = "arguments"; + + Object.defineProperties(obj, { + property: arguments + }); + + return obj.property === "arguments"; + }; + + return func(); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-137.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-137.js new file mode 100644 index 0000000000..a7d60188ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-137.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-137", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-137.js", + + description: "Object.defineProperties - 'descObj' is the global object which implements its own [[Get]] method to get 'value' property (8.10.5 step 5.a)", + + test: function testcase() { + var obj = {}; + + try { + fnGlobalObject().value = "global"; + + Object.defineProperties(obj, { + property: fnGlobalObject() + }); + + return obj.property === "global"; + } finally { + delete fnGlobalObject().value; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-138.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-138.js new file mode 100644 index 0000000000..db9f17ecd7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-138.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-138", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-138.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is present (8.10.5 step 6)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: false + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-139.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-139.js new file mode 100644 index 0000000000..d2dffe19d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-139.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-139", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-139.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is not present (8.10.5 step 6)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + value: "abc" + } + }); + + obj.property = "isWritable"; + + return obj.property === "abc"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-14.js new file mode 100644 index 0000000000..78eaf769db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-14.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-5-b-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-14.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is own accessor property that overrides an inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + var proto = { + enumerable: true + }; + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "enumerable", { + get: function () { + return false; + } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-140.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-140.js new file mode 100644 index 0000000000..18cd21ae93 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-140.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-140", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-140.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is own data property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: false + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-141.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-141.js new file mode 100644 index 0000000000..c7e534ea7e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-141.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-141", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-141.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + writable: false + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-142.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-142.js new file mode 100644 index 0000000000..7a8da9cc6e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-142.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: "15.2.3.7-5-b-142", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-142.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is own data property that overrides an inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + writable: true + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + descObj.writable = false; + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-143.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-143.js new file mode 100644 index 0000000000..7b57b0a1f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-143.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-5-b-143", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-143.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is own data property that overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = { value: 120 }; + + Object.defineProperty(proto, "writable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "writable", { + value: false + }); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && obj.property === 120; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-144.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-144.js new file mode 100644 index 0000000000..9b798db522 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-144.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-5-b-144", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-144.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is own accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var descObj = {}; + + Object.defineProperty(descObj, "writable", { + get: function () { + return false; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-145.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-145.js new file mode 100644 index 0000000000..1d3ecafdeb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-145.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-5-b-145", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-145.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "writable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-146.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-146.js new file mode 100644 index 0000000000..675d22b894 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-146.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-5-b-146", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-146.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is own accessor property that overrides an inherited data property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + writable: true + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "writable", { + get: function () { + return false; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-147.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-147.js new file mode 100644 index 0000000000..c3160f0b97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-147.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-5-b-147", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-147.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is own accessor property that overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "writable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "writable", { + get: function () { + return false; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-148.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-148.js new file mode 100644 index 0000000000..d3989f833b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-148.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-148", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-148.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is own accessor property without a get function (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var descObj = {}; + + Object.defineProperty(descObj, "writable", { + set: function () { } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-149.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-149.js new file mode 100644 index 0000000000..6aa3783b88 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-149.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-5-b-149", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-149.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is own accessor property without a get function that overrides an inherited accessor property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "writable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "writable", { + set: function () { } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-15.js new file mode 100644 index 0000000000..d3e43f201f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-15.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.7-5-b-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-15.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is own accessor property that overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + var accessed = false; + Object.defineProperty(proto, "enumerable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "enumerable", { + get: function () { + return false; + } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-150.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-150.js new file mode 100644 index 0000000000..c366121eb5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-150.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: "15.2.3.7-5-b-150", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-150.js", + + description: "Object.defineProperties - 'writable' property of 'descObj' is inherited accessor property without a get function (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "writable", { + set: function () { } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-151.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-151.js new file mode 100644 index 0000000000..105b3a8f14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-151.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-151", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-151.js", + + description: "Object.defineProperties - 'descObj' is a Function object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var func = function (a, b) { + return a + b; + }; + + func.writable = false; + + Object.defineProperties(obj, { + property: func + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-152.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-152.js new file mode 100644 index 0000000000..7b9611f69e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-152.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-152", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-152.js", + + description: "Object.defineProperties - 'descObj' is an Array object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var arr = [1, 2, 3]; + + arr.writable = false; + + Object.defineProperties(obj, { + property: arr + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-153.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-153.js new file mode 100644 index 0000000000..2c0e035d2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-153.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-153", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-153.js", + + description: "Object.defineProperties - 'descObj' is a String object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var str = new String("abc"); + + str.writable = false; + + Object.defineProperties(obj, { + property: str + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-154.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-154.js new file mode 100644 index 0000000000..f2ae8602d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-154.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-154", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-154.js", + + description: "Object.defineProperties - 'descObj' is a Boolean object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Boolean(false); + + descObj.writable = false; + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-155.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-155.js new file mode 100644 index 0000000000..265c8f1f93 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-155.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-155", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-155.js", + + description: "Object.defineProperties - 'descObj' is a Number object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Number(-9); + + descObj.writable = false; + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-156.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-156.js new file mode 100644 index 0000000000..5f4922fc6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-156.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-156", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-156.js", + + description: "Object.defineProperties - 'descObj' is the Math object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var obj = {}; + + try { + Math.writable = false; + + Object.defineProperties(obj, { + property: Math + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + } finally { + delete Math.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-157.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-157.js new file mode 100644 index 0000000000..39720ae5d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-157.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-157", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-157.js", + + description: "Object.defineProperties - 'descObj' is a Date object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Date(); + + descObj.writable = false; + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-158.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-158.js new file mode 100644 index 0000000000..abe57e07f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-158.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-158", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-158.js", + + description: "Object.defineProperties - 'descObj' is a RegExp object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new RegExp(); + + descObj.writable = false; + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-159.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-159.js new file mode 100644 index 0000000000..4b2a3cae6c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-159.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-159", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-159.js", + + description: "Object.defineProperties - 'descObj' is the JSON object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var obj = {}; + + try { + JSON.writable = false; + + Object.defineProperties(obj, { + property: JSON + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + } finally { + delete JSON.writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-16.js new file mode 100644 index 0000000000..3b954535e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-16.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-16.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is own accessor property without a get function (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + var descObj = {}; + + Object.defineProperty(descObj, "enumerable", { + set: function () { } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-160.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-160.js new file mode 100644 index 0000000000..00ce82c5bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-160.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-160", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-160.js", + + description: "Object.defineProperties - 'descObj' is an Error object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Error(); + + descObj.writable = false; + + Object.defineProperties(obj, { + property: descObj + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-161.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-161.js new file mode 100644 index 0000000000..708add18f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-161.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-161", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-161.js", + + description: "Object.defineProperties - 'descObj' is the Arguments object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + var obj = {}; + + var func = function (a, b) { + arguments.writable = false; + + Object.defineProperties(obj, { + property: arguments + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }; + + return func(); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-163.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-163.js new file mode 100644 index 0000000000..ef38f16e2b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-163.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-163", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-163.js", + + description: "Object.defineProperties - 'descObj' is the global object which implements its own [[Get]] method to get 'writable' property (8.10.5 step 6.a)", + + test: function testcase() { + + var obj = {}; + + try { + fnGlobalObject().writable = false; + + Object.defineProperties(obj, { + property: fnGlobalObject() + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + } finally { + delete fnGlobalObject().writable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-164.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-164.js new file mode 100644 index 0000000000..1c4d0f0302 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-164.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-164", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-164.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is undefined (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: undefined + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-165.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-165.js new file mode 100644 index 0000000000..d7d3f1e245 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-165.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-165", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-165.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is null (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: null + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-166.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-166.js new file mode 100644 index 0000000000..663030f1e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-166.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-166", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-166.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is true (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: true + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-167.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-167.js new file mode 100644 index 0000000000..89d0de789e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-167.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-167", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-167.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is false (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: false + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-168.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-168.js new file mode 100644 index 0000000000..e6d8719d23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-168.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-168", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-168.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is 0 (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: 0 + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-169.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-169.js new file mode 100644 index 0000000000..32fc4931d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-169.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-169", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-169.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is +0 (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: +0 + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-17.js new file mode 100644 index 0000000000..4cb8384a1c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-17.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-5-b-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-17.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is own accessor property without a get function that overrides an inherited accessor property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + var accessed = false; + Object.defineProperty(proto, "enumerable", { + get: function () { + return false; + } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "enumerable", { + set: function () { } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-170.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-170.js new file mode 100644 index 0000000000..5e06f402ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-170.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-170", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-170.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is -0 (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: -0 + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-171.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-171.js new file mode 100644 index 0000000000..72fcf369cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-171.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-171", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-171.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is NaN (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: NaN + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-172.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-172.js new file mode 100644 index 0000000000..082d61fbcd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-172.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-172", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-172.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is positive number (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: 123 + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-173.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-173.js new file mode 100644 index 0000000000..06f7ef8904 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-173.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-173", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-173.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is negative number (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: -123 + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-174.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-174.js new file mode 100644 index 0000000000..daf8c9a6e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-174.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-5-b-174", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-174.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is empty string (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: "" + } + }); + + obj.property = "isWritable"; + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-175.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-175.js new file mode 100644 index 0000000000..c7637072cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-175.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-175", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-175.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is non-empty string (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: "abc" + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-176.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-176.js new file mode 100644 index 0000000000..7164c4f17c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-176.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-176", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-176.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is Function object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: function () { } + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-177.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-177.js new file mode 100644 index 0000000000..ee86e485b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-177.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-177", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-177.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is Array object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: [] + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-178.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-178.js new file mode 100644 index 0000000000..a4e3f1690e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-178.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-178", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-178.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is String object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: new String("abc") + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-179.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-179.js new file mode 100644 index 0000000000..a6c2695db1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-179.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-179", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-179.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is Boolean object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: new Boolean(true) + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-18.js new file mode 100644 index 0000000000..0244d931a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-18.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-5-b-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-18.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is inherited accessor property without a get function (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + var accessed = false; + + Object.defineProperty(proto, "enumerable", { + set: function () { } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-180.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-180.js new file mode 100644 index 0000000000..fce18a3795 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-180.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-180", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-180.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is Number object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: new Number(123) + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-181.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-181.js new file mode 100644 index 0000000000..a05cae407e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-181.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-181", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-181.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is the Math object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: Math + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-182.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-182.js new file mode 100644 index 0000000000..decc3560bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-182.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-182", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-182.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is Date object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: new Date() + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-183.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-183.js new file mode 100644 index 0000000000..8c0c9eb0de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-183.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-183", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-183.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is RegExp object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: new RegExp() + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-184.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-184.js new file mode 100644 index 0000000000..b821791925 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-184.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-184", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-184.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is the JSON object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: JSON + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-185.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-185.js new file mode 100644 index 0000000000..a2382643b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-185.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-185", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-185.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is Error object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: new SyntaxError() + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-186.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-186.js new file mode 100644 index 0000000000..cd1f2c7d8c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-186.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-186", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-186.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is the Argument object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + var func = function (a, b, c) { + return arguments; + }; + + Object.defineProperties(obj, { + property: { + writable: func(1, true, "a") + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-188.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-188.js new file mode 100644 index 0000000000..ade49b5fc3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-188.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-188", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-188.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is the global object (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: fnGlobalObject() + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-189.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-189.js new file mode 100644 index 0000000000..306069d1ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-189.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-189", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-189.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is a string (value is 'false') which is treated as true value (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: "false" + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-19.js new file mode 100644 index 0000000000..6fb96c16aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-19.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-19.js", + + description: "Object.defineProperties - 'descObj' is a Function object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var descObj = function () { }; + var accessed = false; + + descObj.enumerable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-190.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-190.js new file mode 100644 index 0000000000..552bab1eb5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-190.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-190", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-190.js", + + description: "Object.defineProperties - value of 'writable' property of 'descObj' is new Boolean(false) which is treated as true value (8.10.5 step 6.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + writable: new Boolean(false) + } + }); + + obj.property = "isWritable"; + + return obj.property === "isWritable"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-191.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-191.js new file mode 100644 index 0000000000..249f74c785 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-191.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-191", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-191.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is present (8.10.5 step 7)", + + test: function testcase() { + var obj = {}; + + var getter = function () { + return "present"; + }; + + Object.defineProperties(obj, { + property: { + get: getter + } + }); + + return obj.property === "present"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-192.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-192.js new file mode 100644 index 0000000000..3f7e83ef62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-192.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-192", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-192.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is not present (8.10.5 step 7)", + + test: function testcase() { + var obj = {}; + + var setter = function () { }; + + Object.defineProperties(obj, { + property: { + set: setter + } + }); + + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-193.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-193.js new file mode 100644 index 0000000000..3341c275e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-193.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-193", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-193.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is own data property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var getter = function () { + return "ownDataProperty"; + }; + + Object.defineProperties(obj, { + property: { + get: getter + } + }); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-194.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-194.js new file mode 100644 index 0000000000..692f1d17a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-194.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: "15.2.3.7-5-b-194", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-194.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var getter = function () { + return "inheritedDataProperty"; + }; + + var proto = { + get: getter + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "inheritedDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-195.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-195.js new file mode 100644 index 0000000000..49ba695ba7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-195.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-5-b-195", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-195.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is own data property that overrides an inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var getter = function () { + return "inheritedDataProperty"; + }; + + var proto = { + get: getter + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + descObj.get = function () { + return "ownDataProperty"; + }; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-196.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-196.js new file mode 100644 index 0000000000..a56fb05df3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-196.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-5-b-196", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-196.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is own data property that overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "get", { + value: function () { + return "ownDataProperty"; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownDataProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-197.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-197.js new file mode 100644 index 0000000000..b7ed10b4c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-197.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-5-b-197", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-197.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is own accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var descObj = {}; + + Object.defineProperty(descObj, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-198.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-198.js new file mode 100644 index 0000000000..c2c2ba0ce4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-198.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-5-b-198", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-198.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "inheritedAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-199.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-199.js new file mode 100644 index 0000000000..9837d2b273 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-199.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-5-b-199", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-199.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is own accessor property that overrides an inherited data property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var proto = { + get: function () { + return "inheritedDataProperty"; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-2.js new file mode 100644 index 0000000000..c6f181bc8c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-2.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-2.js", + + description: "Object.defineProperties - 'descObj' is null (8.10.5 step 1)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: null + }); + return false; + } catch (e) { + return e instanceof TypeError && !obj.hasOwnProperty("prop"); ; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-20.js new file mode 100644 index 0000000000..fc16c21975 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-20.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-20.js", + + description: "Object.defineProperties - 'descObj' is an Array object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + var descObj = []; + + descObj.enumerable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-200.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-200.js new file mode 100644 index 0000000000..eaf1b7f759 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-200.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.7-5-b-200", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-200.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is own accessor property that overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "get", { + get: function () { + return function () { + return "ownAccessorProperty"; + }; + } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "ownAccessorProperty"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-201.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-201.js new file mode 100644 index 0000000000..b5d90c6a20 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-201.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-201", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-201.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is own accessor property without a get function (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var descObj = {}; + + Object.defineProperty(descObj, "get", { + set: function () { } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-202.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-202.js new file mode 100644 index 0000000000..11768aabb2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-202.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-5-b-202", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-202.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is own accessor property without a get function that overrides an inherited accessor property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "get", { + get: function () { + return function () { + return "inheritedAccessorProperty"; + }; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperty(descObj, "get", { + set: function () { } + }); + + Object.defineProperties(obj, { + property: descObj + }); + + return typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-203.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-203.js new file mode 100644 index 0000000000..6601bb9c77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-203.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-203", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-203.js", + + description: "Object.defineProperties - 'get' property of 'descObj' is inherited accessor property without a get function (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var proto = {}; + + Object.defineProperty(proto, "get", { + set: function () { } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + + Object.defineProperties(obj, { + property: descObj + }); + + return typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-204.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-204.js new file mode 100644 index 0000000000..6af33b9321 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-204.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-204", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-204.js", + + description: "Object.defineProperties - 'descObj' is a Function object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var func = function (a, b) { + return a + b; + }; + + func.get = function () { + return "Function"; + }; + + Object.defineProperties(obj, { + property: func + }); + + return obj.property === "Function"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-205.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-205.js new file mode 100644 index 0000000000..23e4d08b6b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-205.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-205", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-205.js", + + description: "Object.defineProperties - 'descObj' is an Array object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var arr = []; + + arr.get = function () { + return "Array"; + }; + + Object.defineProperties(obj, { + property: arr + }); + + return obj.property === "Array"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-206.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-206.js new file mode 100644 index 0000000000..ed0d0ab0f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-206.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-206", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-206.js", + + description: "Object.defineProperties - 'descObj' is a String object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var str = new String("abc"); + + str.get = function () { + return "string Object"; + }; + + Object.defineProperties(obj, { + property: str + }); + + return obj.property === "string Object"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-207.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-207.js new file mode 100644 index 0000000000..c12a12039a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-207.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-207", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-207.js", + + description: "Object.defineProperties - 'descObj' is a Boolean object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Boolean(false); + + descObj.get = function () { + return "Boolean"; + }; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "Boolean"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-208.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-208.js new file mode 100644 index 0000000000..ee279d6692 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-208.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-208", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-208.js", + + description: "Object.defineProperties - 'descObj' is a Number object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Number(-9); + + descObj.get = function () { + return "Number"; + }; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "Number"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-209.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-209.js new file mode 100644 index 0000000000..5da516f6ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-209.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-209", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-209.js", + + description: "Object.defineProperties - 'descObj' is the Math object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + + var obj = {}; + + try { + Math.get = function () { + return "Math"; + }; + + Object.defineProperties(obj, { + property: Math + }); + + return obj.property === "Math"; + } finally { + delete Math.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-21.js new file mode 100644 index 0000000000..9d692e6cad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-21.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-21.js", + + description: "Object.defineProperties - 'descObj' is a String object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var descObj = new String(); + var accessed = false; + descObj.enumerable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-210.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-210.js new file mode 100644 index 0000000000..5583970eb9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-210.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-210", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-210.js", + + description: "Object.defineProperties - 'descObj' is a Date object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Date(); + + descObj.get = function () { + return "Date"; + }; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "Date"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-211.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-211.js new file mode 100644 index 0000000000..bacb45478f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-211.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-211", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-211.js", + + description: "Object.defineProperties - 'descObj' is a RegExp object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new RegExp(); + + descObj.get = function () { + return "RegExp"; + }; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "RegExp"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-212.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-212.js new file mode 100644 index 0000000000..4326934821 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-212.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-212", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-212.js", + + description: "Object.defineProperties - 'descObj' is the JSON object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + + var obj = {}; + + try { + JSON.get = function () { + return "JSON"; + }; + + Object.defineProperties(obj, { + property: JSON + }); + + return obj.property === "JSON"; + } finally { + delete JSON.get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-213.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-213.js new file mode 100644 index 0000000000..6109d587b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-213.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-213", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-213.js", + + description: "Object.defineProperties - 'descObj' is an Error object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var descObj = new Error(); + + descObj.get = function () { + return "Error"; + }; + + Object.defineProperties(obj, { + property: descObj + }); + + return obj.property === "Error"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-214.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-214.js new file mode 100644 index 0000000000..ae872f1e76 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-214.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-214", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-214.js", + + description: "Object.defineProperties - 'descObj' is the Arguments object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + var obj = {}; + + var func = function (a, b) { + arguments.get = function () { + return "arguments"; + }; + + Object.defineProperties(obj, { + property: arguments + }); + + return obj.property === "arguments"; + }; + + return func(); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-216.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-216.js new file mode 100644 index 0000000000..3cbf557380 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-216.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-216", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-216.js", + + description: "Object.defineProperties - 'descObj' is the global object which implements its own [[Get]] method to get 'get' property (8.10.5 step 7.a)", + + test: function testcase() { + + var obj = {}; + + try { + fnGlobalObject().get = function () { + return "global"; + }; + + Object.defineProperties(obj, { + property: fnGlobalObject() + }); + + return obj.property === "global"; + } finally { + delete fnGlobalObject().get; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-217.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-217.js new file mode 100644 index 0000000000..6a25ff2896 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-217.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.7-5-b-217", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-217.js", + + description: "Object.defineProperties - value of 'get' property of 'descObj' is undefined (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + get: undefined + } + }); + + return obj.hasOwnProperty("property") && typeof obj.property === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-218.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-218.js new file mode 100644 index 0000000000..68ae80c960 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-218.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-218", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-218.js", + + description: "Object.defineProperties - value of 'get' property of 'descObj' is primitive values( value is null) (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + try { + Object.defineProperties(obj, { + property: { + get: null + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-219.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-219.js new file mode 100644 index 0000000000..6ef141fb9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-219.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-219", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-219.js", + + description: "Object.defineProperties - value of 'get' property of 'descObj' is primitive values( value is boolean) (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + try { + Object.defineProperties(obj, { + property: { + get: false + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-22.js new file mode 100644 index 0000000000..81b8793d1b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-22.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-22.js", + + description: "Object.defineProperties - 'descObj' is a Boolean object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var descObj = new Boolean(false); + var accessed = false; + + descObj.enumerable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-220.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-220.js new file mode 100644 index 0000000000..f645614751 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-220.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-220", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-220.js", + + description: "Object.defineProperties - value of 'get' property of 'descObj' is primitive values( value is number) (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + try { + Object.defineProperties(obj, { + property: { + get: 123 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-221.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-221.js new file mode 100644 index 0000000000..2fd032ec26 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-221.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-221", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-221.js", + + description: "Object.defineProperties - value of 'get' property of 'descObj' is primitive values( value is string) (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + try { + Object.defineProperties(obj, { + property: { + get: "string" + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-222.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-222.js new file mode 100644 index 0000000000..855be8f58a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-222.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-222", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-222.js", + + description: "Object.defineProperties - value of 'get' property of 'descObj' is applied to Array object (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + try { + Object.defineProperties(obj, { + property: { + get: [] + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-223.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-223.js new file mode 100644 index 0000000000..ae10dad751 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-223.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-223", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-223.js", + + description: "Object.defineProperties - value of 'get' property of 'descObj' is a function (8.10.5 step 7.b)", + + test: function testcase() { + var obj = {}; + + var getter = function () { + return 100; + }; + + Object.defineProperties(obj, { + property: { + get: getter + } + }); + + return obj.property === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-226.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-226.js new file mode 100644 index 0000000000..1de951ee91 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-226.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-226", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-226.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is present (8.10.5 step 8)", + + test: function testcase() { + var data = "data"; + var obj = {}; + + Object.defineProperties(obj, { + "prop": { + set: function (value) { + data = value; + } + } + }); + + obj.prop = "overrideData"; + + return obj.hasOwnProperty("prop") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-227.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-227.js new file mode 100644 index 0000000000..2b540756d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-227.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-5-b-227", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-227.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is not present (8.10.5 step 8)", + + test: function testcase() { + var data = "data"; + var obj = {}; + + try { + Object.defineProperties(obj, { + descObj: { + get: function () { + return data; + } + } + }); + + + obj.descObj = "overrideData"; + + var desc = Object.getOwnPropertyDescriptor(obj, "descObj"); + return obj.hasOwnProperty("descObj") && typeof (desc.set) === "undefined" && data === "data"; + } catch (e) { + return false; + } + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-228.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-228.js new file mode 100644 index 0000000000..5a07064d46 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-228.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-228", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-228.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is own data property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var obj = {}; + + Object.defineProperties(obj, { + descObj: { + set: function (value) { + data = value; + } + } + }); + + obj.descObj = "overrideData"; + + return obj.hasOwnProperty("descObj") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-229.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-229.js new file mode 100644 index 0000000000..68bd3dfd33 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-229.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: "15.2.3.7-5-b-229", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-229.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var proto = { + set: function (value) { + data = value; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + var obj = {}; + + Object.defineProperties(obj, { + prop: child + }); + + obj.prop = "overrideData"; + + return obj.hasOwnProperty("prop") && data === "overrideData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-23.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-23.js new file mode 100644 index 0000000000..e3a5cbad6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-23.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-23", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-23.js", + + description: "Object.defineProperties - 'descObj' is a Number object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var descObj = new Number(-9); + var accessed = false; + + descObj.enumerable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-230.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-230.js new file mode 100644 index 0000000000..0fbb5d5d63 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-230.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-5-b-230", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-230.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is own data property that overrides an inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var data1 = "data"; + var data2 = "data"; + var proto = { + set: function (value) { + data2 = value; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.set = function (value) { + data1 = value; + }; + + var obj = {}; + + Object.defineProperties(obj, { + prop: child + }); + + obj.prop = "overrideData"; + + return obj.hasOwnProperty("prop") && data1 === "overrideData" && data2 === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-231.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-231.js new file mode 100644 index 0000000000..909dd03766 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-231.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.7-5-b-231", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-231.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is own data property that overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var data1 = "data"; + var data2 = "data"; + var fun = function (value) { + data2 = value; + }; + var proto = {}; + Object.defineProperty(proto, "set", { + get: function () { + return fun; + }, + set: function (value) { + fun = value; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.set = function (value) { + data1 = value; + }; + + var obj = {}; + + Object.defineProperties(obj, { + prop: child + }); + + obj.prop = "overrideData"; + + return obj.hasOwnProperty("prop") && data1 === "overrideData" && data2 === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-232.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-232.js new file mode 100644 index 0000000000..9d484c8fbf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-232.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-5-b-232", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-232.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is own accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var setFun = function (value) { + data = value; + }; + var descObj = {}; + Object.defineProperty(descObj, "set", { + get: function () { + return setFun; + } + }); + + var obj = {}; + + Object.defineProperties(obj, { + prop: descObj + }); + + obj.prop = "overrideData"; + + return obj.hasOwnProperty("prop") && data === "overrideData"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-233.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-233.js new file mode 100644 index 0000000000..315eade16a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-233.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-5-b-233", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-233.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var setFun = function (value) { + data = value; + }; + var proto = {}; + Object.defineProperty(proto, "set", { + get: function () { + return setFun; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + var obj = {}; + + Object.defineProperties(obj, { + prop: child + }); + obj.prop = "overrideData"; + + return obj.hasOwnProperty("prop") && data === "overrideData"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-234.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-234.js new file mode 100644 index 0000000000..5d43750c2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-234.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.7-5-b-234", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-234.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is own accessor property that overrides an inherited data property (8.10.5 step 8.a)", + + test: function testcase() { + var data1 = "data"; + var data2 = "data"; + + var proto = {}; + proto.set = function (value) { + data1 = value; + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "set", { + get: function () { + return function (value) { + data2 = value; + }; + } + }); + + var obj = {}; + + Object.defineProperties(obj, { + prop: child + }); + obj.prop = "overrideData"; + + return obj.hasOwnProperty("prop") && data2 === "overrideData" && data1 === "data"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-235.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-235.js new file mode 100644 index 0000000000..84b5746713 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-235.js @@ -0,0 +1,68 @@ +/// 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: "15.2.3.7-5-b-235", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-235.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is own accessor property that overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + var data1 = "data"; + var data2 = "data"; + + var proto = {}; + Object.defineProperty(proto, "set", { + get: function () { + return function (value) { + data1 = value; + }; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "set", { + get: function () { + return function (value) { + data2 = value; + }; + } + }); + + var obj = {}; + + Object.defineProperties(obj, { + prop: child + }); + + obj.prop = "overrideData"; + + return obj.hasOwnProperty("prop") && data2 === "overrideData" && data1 === "data"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-236.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-236.js new file mode 100644 index 0000000000..22b372df61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-236.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-5-b-236", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-236.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is own accessor property without a get function (8.10.5 step 8.a)", + + test: function testcase() { + var fun = function () { + return 10; + }; + var descObj = { + get: fun + }; + Object.defineProperty(descObj, "set", { + set: function () { } + }); + + var obj = {}; + + Object.defineProperties(obj, { + prop: descObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && typeof desc.set === "undefined" && obj.prop === 10; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-237.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-237.js new file mode 100644 index 0000000000..6e5c08bbf9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-237.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.7-5-b-237", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-237.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is own accessor property without a get function that overrides an inherited accessor property (8.10.5 step 8.a)", + + test: function testcase() { + + var fun = function () { + return 10; + }; + var proto = {}; + Object.defineProperty(proto, "set", { + get: function () { + return function () { + return arguments; + }; + } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + Object.defineProperty(descObj, "set", { + set: function () { } + }); + + descObj.get = fun; + + var obj = {}; + + Object.defineProperties(obj, { + prop: descObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && typeof (desc.set) === "undefined" && obj.prop === 10; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-238.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-238.js new file mode 100644 index 0000000000..4a8f3651ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-238.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-5-b-238", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-238.js", + + description: "Object.defineProperties - 'set' property of 'descObj' is inherited accessor property without a get function (8.10.5 step 8.a)", + + test: function testcase() { + + var fun = function () { + return 10; + }; + var proto = {}; + Object.defineProperty(proto, "set", { + set: function () { } + }); + + var Con = function () { }; + Con.prototype = proto; + + var descObj = new Con(); + descObj.get = fun; + + var obj = {}; + + Object.defineProperties(obj, { + prop: descObj + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return obj.hasOwnProperty("prop") && typeof (desc.set) === "undefined" && obj.prop === 10; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-239.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-239.js new file mode 100644 index 0000000000..a5bea913cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-239.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-239", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-239.js", + + description: "Object.defineProperties - 'descObj' is a Function object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var descFun = function () { }; + var setFun = function (value) { + data = value; + }; + + descFun.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, descFun); + obj.prop = "funData"; + return obj.hasOwnProperty("prop") && data === "funData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-24.js new file mode 100644 index 0000000000..3d46d45de1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-24.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-5-b-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-24.js", + + description: "Object.defineProperties - 'descObj' is the Math object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + try { + Math.enumerable = true; + + Object.defineProperties(obj, { + prop: Math + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + } finally { + delete Math.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-240.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-240.js new file mode 100644 index 0000000000..8018d60f12 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-240.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-240", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-240.js", + + description: "Object.defineProperties - 'descObj' is an Array object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + + var data = "data"; + var arr = []; + var setFun = function (value) { + data = value; + }; + arr.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, arr); + obj.prop = "arrData"; + return obj.hasOwnProperty("prop") && data === "arrData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-241.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-241.js new file mode 100644 index 0000000000..1a12c8719a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-241.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-241", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-241.js", + + description: "Object.defineProperties - 'descObj' is a String object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var descStr = new String(); + var setFun = function (value) { + data = value; + }; + + descStr.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, descStr); + obj.prop = "strData"; + return obj.hasOwnProperty("prop") && data === "strData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-242.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-242.js new file mode 100644 index 0000000000..ca2dc0e2f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-242.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-242", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-242.js", + + description: "Object.defineProperties - 'descObj' is a Boolean object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + + var data = "data"; + var descObj = new Boolean(false); + var setFun = function (value) { + data = value; + }; + descObj.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, descObj); + obj.prop = "booleanData"; + return obj.hasOwnProperty("prop") && data === "booleanData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-243.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-243.js new file mode 100644 index 0000000000..a208213b75 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-243.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-243", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-243.js", + + description: "Object.defineProperties - 'descObj' is a Number object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + + var data = "data"; + var descObj = new Number(-9); + var setFun = function (value) { + data = value; + }; + descObj.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, descObj); + obj.prop = "numberData"; + return obj.hasOwnProperty("prop") && data === "numberData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-244.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-244.js new file mode 100644 index 0000000000..2381a899af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-244.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-5-b-244", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-244.js", + + description: "Object.defineProperties - 'descObj' is the Math object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + + var data = "data"; + var setFun = function (value) { + data = value; + }; + try { + Math.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, Math); + obj.prop = "mathData"; + return obj.hasOwnProperty("prop") && data === "mathData"; + } finally { + delete Math.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-245.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-245.js new file mode 100644 index 0000000000..87479a5ae4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-245.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-245", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-245.js", + + description: "Object.defineProperties - 'descObj' is a Date object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + + var data = "data"; + var descObj = new Date(); + var setFun = function (value) { + data = value; + }; + descObj.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, descObj); + obj.prop = "dateData"; + return obj.hasOwnProperty("prop") && data === "dateData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-246.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-246.js new file mode 100644 index 0000000000..3dfd4ab560 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-246.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-246", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-246.js", + + description: "Object.defineProperties - 'descObj' is a RegExp object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + + var data = "data"; + var descObj = new RegExp(); + var setFun = function (value) { + data = value; + }; + descObj.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, descObj); + obj.prop = "regExpData"; + return obj.hasOwnProperty("prop") && data === "regExpData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-247.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-247.js new file mode 100644 index 0000000000..e6959da9a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-247.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-5-b-247", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-247.js", + + description: "Object.defineProperties - 'descObj' is the JSON object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + + var data = "data"; + var setFun = function (value) { + data = value; + }; + try { + JSON.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, JSON); + obj.prop = "JSONData"; + return obj.hasOwnProperty("prop") && data === "JSONData"; + } finally { + delete JSON.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-248.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-248.js new file mode 100644 index 0000000000..2030cccdaf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-248.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-248", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-248.js", + + description: "Object.defineProperties - 'descObj' is an Error object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + + var data = "data"; + var descObj = new Error("test"); + descObj.description = { value: 11 }; + descObj.message = { value: 11 }; + descObj.name = { value: 11 }; + + var setFun = function (value) { + data = value; + }; + descObj.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, descObj); + obj.prop = "errorData"; + return obj.hasOwnProperty("prop") && data === "errorData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-249.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-249.js new file mode 100644 index 0000000000..c51bb3d390 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-249.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-5-b-249", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-249.js", + + description: "Object.defineProperties - 'descObj' is the Arguments object which implements its own [[Get]] method to get 'set' property (8.10.5 step 8.a)", + + test: function testcase() { + var data = "data"; + var fun = function () { + return arguments; + }; + var arg = fun(); + var setFun = function (value) { + data = value; + }; + + arg.prop = { + set: setFun + }; + + var obj = {}; + Object.defineProperties(obj, arg); + obj.prop = "argData"; + return obj.hasOwnProperty("prop") && data === "argData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-25.js new file mode 100644 index 0000000000..18d3597e4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-25.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-25.js", + + description: "Object.defineProperties - 'descObj' is a Date object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var descObj = new Date(); + var accessed = false; + + descObj.enumerable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-252.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-252.js new file mode 100644 index 0000000000..79e68cd958 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-252.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-5-b-252", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-252.js", + + description: "Object.defineProperties - value of 'set' property of 'descObj' is undefined (8.10.5 step 8.b)", + + test: function testcase() { + + var getFun = function () { + return 11; + }; + + var obj = {}; + Object.defineProperties(obj, { + prop: { + get: getFun, + set: undefined + } + }); + + try { + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + return obj.hasOwnProperty("prop") && typeof (desc.set) === "undefined"; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-253.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-253.js new file mode 100644 index 0000000000..982bb434db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-253.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-253", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-253.js", + + description: "Object.defineProperties - value of 'set' property of 'descObj' is primitive values null (8.10.5 step 8.b)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: { + set: null + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-254.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-254.js new file mode 100644 index 0000000000..7622b837a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-254.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-254", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-254.js", + + description: "Object.defineProperties - value of 'set' property of 'descObj' is primitive values boolean (8.10.5 step 8.b)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: { + set: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-255.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-255.js new file mode 100644 index 0000000000..a94c16915d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-255.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-255", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-255.js", + + description: "Object.defineProperties - value of 'set' property of 'descObj' is primitive values number (8.10.5 step 8.b)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: { + set: 100 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-256.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-256.js new file mode 100644 index 0000000000..269949fd42 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-256.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-256", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-256.js", + + description: "Object.defineProperties - value of 'set' property of 'descObj' is primitive values string (8.10.5 step 8.b)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: { + set: "abcdef" + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-257.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-257.js new file mode 100644 index 0000000000..7741167093 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-257.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-257", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-257.js", + + description: "Object.defineProperties - value of 'set' property of 'descObj' is an interesting object other than a function (8.10.5 step 8.b)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: { + set: [] + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-258.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-258.js new file mode 100644 index 0000000000..10a95a8026 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-258.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-258", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-258.js", + + description: "Object.defineProperties - value of 'set' property of 'descObj' is a function (8.10.5 step 8.b)", + + test: function testcase() { + + var data = "data"; + var setFun = function (value) { + data = value; + }; + var obj = {}; + + + Object.defineProperties(obj, { + prop: { + set: setFun + } + }); + obj.prop = "funData"; + return obj.hasOwnProperty("prop") && data === "funData"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-26.js new file mode 100644 index 0000000000..9586c1e084 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-26.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-26.js", + + description: "Object.defineProperties - 'descObj' is a RegExp object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var descObj = new RegExp(); + var accessed = false; + + descObj.enumerable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-261.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-261.js new file mode 100644 index 0000000000..93a7ac8c55 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-261.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-261", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-261.js", + + description: "Object.defineProperties - TypeError is thrown if both 'set' property and 'value' property of 'descObj' are present (8.10.5 step 9.a)", + + test: function testcase() { + + var setFun = function () {}; + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + set: setFun + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-262.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-262.js new file mode 100644 index 0000000000..3b360dc3db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-262.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-262", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-262.js", + + description: "Object.defineProperties - TypeError is thrown if both 'set' property and 'writable' property of 'descObj' are present (8.10.5 step 9.a)", + + test: function testcase() { + + var setFun = function () { }; + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: { + writable: true, + set: setFun + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-263.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-263.js new file mode 100644 index 0000000000..32df5bf8d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-263.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-263", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-263.js", + + description: "Object.defineProperties - TypeError is thrown if both 'get' property and 'value' property of 'descObj' are present (8.10.5 step 9.a)", + + test: function testcase() { + + var getFun = function () {}; + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + get: getFun + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-264.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-264.js new file mode 100644 index 0000000000..63b3076621 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-264.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-264", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-264.js", + + description: "Object.defineProperties - TypeError is thrown if both 'get' property and 'writable' property of 'descObj' are present (8.10.5 step 9.a)", + + test: function testcase() { + + var getFun = function () {}; + + var obj = {}; + + try { + Object.defineProperties(obj, { + "prop": { + writable: true, + get: getFun + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-27.js new file mode 100644 index 0000000000..09e679fc7b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-27.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-5-b-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-27.js", + + description: "Object.defineProperties - 'descObj' is the JSON object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + try { + JSON.enumerable = true; + + Object.defineProperties(obj, { + prop: JSON + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + } finally { + delete JSON.enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-28.js new file mode 100644 index 0000000000..65a8c19dff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-28.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-28.js", + + description: "Object.defineProperties - 'descObj' is an Error object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var descObj = new Error(); + var accessed = false; + + descObj.enumerable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-29.js new file mode 100644 index 0000000000..f6e8c0eba7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-29.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: "15.2.3.7-5-b-29", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-29.js", + + description: "Object.defineProperties - 'descObj' is the Arguments object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var arg; + var accessed = false; + + (function fun() { + arg = arguments; + }()); + + arg.enumerable = true; + + Object.defineProperties(obj, { + prop: arg + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-3.js new file mode 100644 index 0000000000..296ffd8dd9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-3.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-3.js", + + description: "Object.defineProperties - 'descObj' is a boolean (8.10.5 step 1)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: true + }); + return false; + } catch (e) { + return e instanceof TypeError && !obj.hasOwnProperty("prop"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-31.js new file mode 100644 index 0000000000..8c1a30bfa5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-31.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-5-b-31", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-31.js", + + description: "Object.defineProperties - 'descObj' is the global object which implements its own [[Get]] method to get 'enumerable' property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + try { + fnGlobalObject().enumerable = true; + + Object.defineProperties(obj, { + prop: fnGlobalObject() + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + } finally { + delete fnGlobalObject().enumerable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-32.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-32.js new file mode 100644 index 0000000000..348ff10da6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-32.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-32", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-32.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is undefined (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: undefined + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-33.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-33.js new file mode 100644 index 0000000000..00b58cb5f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-33.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-33", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-33.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is null (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: null + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-34.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-34.js new file mode 100644 index 0000000000..65b4aa5e3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-34.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-34", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-34.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is true (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: true + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-35.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-35.js new file mode 100644 index 0000000000..a31c9d5239 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-35.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-35", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-35.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is false (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: false + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-36.js new file mode 100644 index 0000000000..d6ba55cf52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-36.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-36", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-36.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is 0 (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: 0 + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-37.js new file mode 100644 index 0000000000..13980b5d20 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-37.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-37", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-37.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is +0 (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: +0 + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-38.js new file mode 100644 index 0000000000..e070429308 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-38.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-38", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-38.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is -0 (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: -0 + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-39.js new file mode 100644 index 0000000000..288e2fa347 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-39.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-39", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-39.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is NaN (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: NaN + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-4.js new file mode 100644 index 0000000000..297f330e1d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-4.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-4.js", + + description: "Object.defineProperties - 'descObj' is a number (8.10.5 step 1)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: 12 + }); + return false; + } catch (e) { + return e instanceof TypeError && !obj.hasOwnProperty("prop"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-40.js new file mode 100644 index 0000000000..5282138d4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-40.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-40", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-40.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is positive number (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: 12 + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-41.js new file mode 100644 index 0000000000..dd4ee3a0ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-41.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-41", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-41.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is negative number (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: -9 + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-42.js new file mode 100644 index 0000000000..aa26c5ba1a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-42.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-42", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-42.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is empty string (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: "" + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-43.js new file mode 100644 index 0000000000..b4d29e7444 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-43.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-43", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-43.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is non-empty string (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: "AB\n\\cd" + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-44.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-44.js new file mode 100644 index 0000000000..0aedf58729 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-44.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-44", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-44.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is a Function object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: function () { } + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-45.js new file mode 100644 index 0000000000..8e50da5a4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-45.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-45", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-45.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is an Array object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: [] + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-46.js new file mode 100644 index 0000000000..66d2358b7f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-46.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-46", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-46.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is a String object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: new String() + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-47.js new file mode 100644 index 0000000000..65702245e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-47.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-47", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-47.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is a Boolean object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: new Boolean(true) + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-48.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-48.js new file mode 100644 index 0000000000..15d9f37b01 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-48.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-48", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-48.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is a Number object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: new Number(-9) + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-49.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-49.js new file mode 100644 index 0000000000..4e3140b147 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-49.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-49", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-49.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is the Math object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: Math + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-5.js new file mode 100644 index 0000000000..a3717b7e41 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-5.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-5-b-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-5.js", + + description: "Object.defineProperties - 'descObj' is a string (8.10.5 step 1)", + + test: function testcase() { + + var obj = {}; + + try { + Object.defineProperties(obj, { + prop: "abc" + }); + return false; + } catch (e) { + return e instanceof TypeError && !obj.hasOwnProperty("prop"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-50.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-50.js new file mode 100644 index 0000000000..7e01ce259d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-50.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-50", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-50.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is a Date object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: new Date() + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-51.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-51.js new file mode 100644 index 0000000000..513b45ca54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-51.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-51", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-51.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is a RegExp object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: new RegExp() + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-52.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-52.js new file mode 100644 index 0000000000..4713e6b5c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-52.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-52", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-52.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is the JSON object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: JSON + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-53.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-53.js new file mode 100644 index 0000000000..b86ee88e5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-53.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-53", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-53.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is an Error object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: new Error() + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-54.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-54.js new file mode 100644 index 0000000000..f4fdf1b68e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-54.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: "15.2.3.7-5-b-54", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-54.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is the Arguments object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + var arg; + + (function fun() { + arg = arguments; + }(1, 2, 3)); + + Object.defineProperties(obj, { + prop: { + enumerable: arg + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-56.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-56.js new file mode 100644 index 0000000000..2b037cdb5d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-56.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-56", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-56.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is the global object (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: fnGlobalObject() + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-57.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-57.js new file mode 100644 index 0000000000..606c87abc0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-57.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-57", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-57.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is a string (value is 'false') which is treated as true value (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: "false" + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-58.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-58.js new file mode 100644 index 0000000000..eb70c1274a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-58.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-58", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-58.js", + + description: "Object.defineProperties - value of 'enumerable' property of 'descObj' is new Boolean(false) which is treated as true value (8.10.5 step 3.b)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: new Boolean(false) + } + }); + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-59.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-59.js new file mode 100644 index 0000000000..d81e66c88f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-59.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-59", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-59.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is present (8.10.5 step 4)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperties(obj, { + prop: { + configurable: true + } + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-6.js new file mode 100644 index 0000000000..0f4d947dc7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-6.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-6.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is present (8.10.5 step 3)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: { + enumerable: true + } + }); + + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-60.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-60.js new file mode 100644 index 0000000000..e608e9d812 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-60.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-5-b-60", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-60.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is not present (8.10.5 step 4)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperties(obj, { + prop: {} + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-61.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-61.js new file mode 100644 index 0000000000..afef868dd9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-61.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-61", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-61.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is own data property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperties(obj, { + prop: { + configurable: true + } + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-62.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-62.js new file mode 100644 index 0000000000..63ea716813 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-62.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-5-b-62", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-62.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + var proto = { + configurable: true + }; + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-63.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-63.js new file mode 100644 index 0000000000..58377238b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-63.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-5-b-63", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-63.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is own data property that overrides an inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + var proto = { + configurable: true + }; + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "configurable", { + value: false + }); + + Object.defineProperties(obj, { + prop: descObj + }); + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-64.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-64.js new file mode 100644 index 0000000000..de44c36ac5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-64.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-5-b-64", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-64.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is own data property that overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "configurable", { + value: false + }); + + Object.defineProperties(obj, { + prop: descObj + }); + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-65.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-65.js new file mode 100644 index 0000000000..a8d84ef755 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-65.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-65", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-65.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is own accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = {}; + Object.defineProperty(descObj, "configurable", { + get: function () { + return true; + } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-66.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-66.js new file mode 100644 index 0000000000..f8d64f82e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-66.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-5-b-66", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-66.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-67.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-67.js new file mode 100644 index 0000000000..133a8198d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-67.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-5-b-67", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-67.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is own accessor property that overrides an inherited data property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + var proto = { + configurable: true + }; + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "configurable", { + get: function () { + return false; + } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-68.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-68.js new file mode 100644 index 0000000000..28700c9759 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-68.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-5-b-68", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-68.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is own accessor property that overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "configurable", { + get: function () { + return false; + } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-69.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-69.js new file mode 100644 index 0000000000..ba1b432f2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-69.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-5-b-69", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-69.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is own accessor property without a get function (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = {}; + Object.defineProperty(descObj, "configurable", { + set: function () { } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-7.js new file mode 100644 index 0000000000..dee900fecc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-7.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-7.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is not present (8.10.5 step 3)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperties(obj, { + prop: {} + }); + + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-70.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-70.js new file mode 100644 index 0000000000..27b5a41f2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-70.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-5-b-70", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-70.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is own accessor property without a get function that overrides an inherited accessor property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + Object.defineProperty(proto, "configurable", { + get: function () { + return true; + } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperty(descObj, "configurable", { + set: function () { } + }); + + Object.defineProperties(obj, { + prop: descObj + }); + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-71.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-71.js new file mode 100644 index 0000000000..fb1da9944b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-71.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-5-b-71", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-71.js", + + description: "Object.defineProperties - 'configurable' property of 'descObj' is inherited accessor property without a get function (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + var proto = {}; + + Object.defineProperty(proto, "configurable", { + set: function () { } + }); + + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-72.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-72.js new file mode 100644 index 0000000000..124753f794 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-72.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-72", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-72.js", + + description: "Object.defineProperties - 'descObj' is a Function object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = function () { }; + descObj.configurable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-73.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-73.js new file mode 100644 index 0000000000..dbdbbb8644 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-73.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-73", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-73.js", + + description: "Object.defineProperties - 'descObj' is an Array object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = []; + descObj.configurable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-74.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-74.js new file mode 100644 index 0000000000..6e66842d45 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-74.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-74", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-74.js", + + description: "Object.defineProperties - 'descObj' is a String object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = new String(); + descObj.configurable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-75.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-75.js new file mode 100644 index 0000000000..b6eb45ff70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-75.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-75", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-75.js", + + description: "Object.defineProperties - 'descObj' is a Boolean object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = new Boolean(false); + descObj.configurable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-76.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-76.js new file mode 100644 index 0000000000..6e586846c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-76.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-76", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-76.js", + + description: "Object.defineProperties - 'descObj' is a Number object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = new Number(-9); + descObj.configurable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-77.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-77.js new file mode 100644 index 0000000000..5770174cab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-77.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-77", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-77.js", + + description: "Object.defineProperties - 'descObj' is the Math object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + try { + Math.configurable = true; + + Object.defineProperties(obj, { + prop: Math + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + } finally { + delete Math.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-78.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-78.js new file mode 100644 index 0000000000..63e313728f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-78.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-78", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-78.js", + + description: "Object.defineProperties - 'descObj' is a Date object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = new Date(); + descObj.configurable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-79.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-79.js new file mode 100644 index 0000000000..c4268ac171 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-79.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-79", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-79.js", + + description: "Object.defineProperties - 'descObj' is a RegExp object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = new RegExp(); + descObj.configurable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-8.js new file mode 100644 index 0000000000..5eeb005125 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-8.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-5-b-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-8.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is own data property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + var descObj = { enumerable: true }; + + Object.defineProperties(obj, { + prop: descObj + }); + + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-80.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-80.js new file mode 100644 index 0000000000..364902ac99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-80.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-80", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-80.js", + + description: "Object.defineProperties - 'descObj' is the JSON object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + try { + JSON.configurable = true; + + Object.defineProperties(obj, { + prop: JSON + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + } finally { + delete JSON.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-81.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-81.js new file mode 100644 index 0000000000..c64e8b2b79 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-81.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-5-b-81", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-81.js", + + description: "Object.defineProperties - 'descObj' is an Error object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var descObj = new Error(); + descObj.configurable = true; + + Object.defineProperties(obj, { + prop: descObj + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-82.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-82.js new file mode 100644 index 0000000000..bd5a720fd9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-82.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-5-b-82", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-82.js", + + description: "Object.defineProperties - 'descObj' is the Arguments object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + var arg; + (function fun() { + arg = arguments; + }()); + + arg.configurable = true; + + Object.defineProperties(obj, { + prop: arg + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-84.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-84.js new file mode 100644 index 0000000000..9e7e5e3256 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-84.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-5-b-84", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-84.js", + + description: "Object.defineProperties - 'descObj' is the global object which implements its own [[Get]] method to get 'configurable' property (8.10.5 step 4.a)", + + test: function testcase() { + + var obj = {}; + + try { + fnGlobalObject().configurable = true; + + Object.defineProperties(obj, { + prop: fnGlobalObject() + }); + + var result1 = obj.hasOwnProperty("prop"); + delete obj.prop; + var result2 = obj.hasOwnProperty("prop"); + + return result1 === true && result2 === false; + } finally { + delete fnGlobalObject().configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-85.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-85.js new file mode 100644 index 0000000000..fc16b5613e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-85.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-85", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-85.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is undefined (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: undefined + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-86.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-86.js new file mode 100644 index 0000000000..64cff15605 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-86.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-86", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-86.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is null (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: null + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return obj.hasOwnProperty("property") && hadOwnProperty; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-87.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-87.js new file mode 100644 index 0000000000..590f26f4cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-87.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-87", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-87.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is true (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: true + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return !obj.hasOwnProperty("property") && hadOwnProperty; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-88.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-88.js new file mode 100644 index 0000000000..e6ecd6b42c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-88.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-88", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-88.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is false (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: false + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-89.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-89.js new file mode 100644 index 0000000000..ed72e05f72 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-89.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-89", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-89.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is 0 (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: 0 + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-9.js new file mode 100644 index 0000000000..d7e2d47405 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-9.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-5-b-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-9.js", + + description: "Object.defineProperties - 'enumerable' property of 'descObj' is inherited data property (8.10.5 step 3.a)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + var proto = { + enumerable: true + }; + var Con = function () { }; + Con.prototype = proto; + var descObj = new Con(); + + Object.defineProperties(obj, { + prop: descObj + }); + + for (var property in obj) { + if (property === "prop") { + accessed = true; + } + } + return accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-90.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-90.js new file mode 100644 index 0000000000..5ca3cc8cba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-90.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-90", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-90.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is +0 (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: +0 + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-91.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-91.js new file mode 100644 index 0000000000..64f2dce3a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-91.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-91", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-91.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is -0 (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: -0 + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-92.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-92.js new file mode 100644 index 0000000000..01a7779074 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-92.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-92", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-92.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is NaN (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: NaN + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-93.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-93.js new file mode 100644 index 0000000000..ac59706398 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-93.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-93", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-93.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is positive number (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: 123 + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return !obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-94.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-94.js new file mode 100644 index 0000000000..6dc5b8adc5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-94.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-5-b-94", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-94.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is negative number (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: -123 + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return !obj.hasOwnProperty("property") && hadOwnProperty; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-95.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-95.js new file mode 100644 index 0000000000..70ffdd1037 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-95.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-95", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-95.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is empty string (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: "" + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-96.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-96.js new file mode 100644 index 0000000000..dd8668cb56 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-96.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-96", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-96.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is non-empty string (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: "abc" + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return !obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-97.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-97.js new file mode 100644 index 0000000000..9be73f0d73 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-97.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-97", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-97.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is Function object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: function () { } + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return !obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-98.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-98.js new file mode 100644 index 0000000000..d4c064ef4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-98.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-98", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-98.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is Array object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: [1, 2, 3] + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return !obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-99.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-99.js new file mode 100644 index 0000000000..661f4a2e9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-99.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-5-b-99", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-5-b-99.js", + + description: "Object.defineProperties - value of 'configurable' property of 'descObj' is String object (8.10.5 step 4.b)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + property: { + configurable: new String("abc") + } + }); + + var hadOwnProperty = obj.hasOwnProperty("property"); + + delete obj.property; + + return !obj.hasOwnProperty("property") && hadOwnProperty; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-1.js new file mode 100644 index 0000000000..a8ede3650a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-1.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-1.js", + + description: "Object.defineProperties - 'P' is own existing data property (8.12.9 step 1 )", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-10.js new file mode 100644 index 0000000000..2621237501 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-10.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-6-a-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-10.js", + + description: "Object.defineProperties - 'P' is own accessor property without a get function that overrides an inherited accessor property (8.12.9 step 1 ) ", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function () { + return 11; + }, + set: function () { }, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + set: function () { }, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-100.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-100.js new file mode 100644 index 0000000000..57a2cab708 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-100.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-100", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-100.js", + + description: "Object.defineProperties - 'P' is data property, several attributes values of P and properties are different (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 100, + writable: true, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + value: 200, + writable: false, + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 200, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-101.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-101.js new file mode 100644 index 0000000000..35e19342e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-101.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-6-a-101", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-101.js", + + description: "Object.defineProperties - 'P' is accessor property, both properties.[[Get]] and P.[[Get]] are two different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + function get_func2() { + return 20; + } + + Object.defineProperties(obj, { + foo: { + get: get_func2 + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func2, set_func, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-102.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-102.js new file mode 100644 index 0000000000..f5a9a5d8d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-102.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-102", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-102.js", + + description: "Object.defineProperties - 'P' is accessor property, P.[[Get]] is present and properties.[[Get]] is undefined (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + get: undefined + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-103.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-103.js new file mode 100644 index 0000000000..bccbaac3e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-103.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-103", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-103.js", + + description: "Object.defineProperties - 'P' is accessor property, P.[[Get]] is undefined and properties.[[Get]] is normal value (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: undefined, + set: set_func, + enumerable: true, + configurable: true + }); + + function get_func() { + return 10; + } + + Object.defineProperties(obj, { + foo: { + get: get_func + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-104.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-104.js new file mode 100644 index 0000000000..5601c1c462 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-104.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-104", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-104.js", + + description: "Object.defineProperties - 'P' is accessor property, both properties.[[Set]] and P.[[Set]] are two different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + + function set_func() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + function set_func2(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperties(obj, { + foo: { + set: set_func2 + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func2, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-105.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-105.js new file mode 100644 index 0000000000..4d4ba5aad4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-105.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: "15.2.3.7-6-a-105", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-105.js", + + description: "Object.defineProperties - 'P' is accessor property, P.[[Set]] is present and properties.[[Set]] is undefined (8.12.9 step 12)", + + test: function testcase() { + var obj = {}; + function get_func() { + return 10; + } + function set_func() { + return 10; + } + + Object.defineProperty(obj, "property", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperties(obj, { + property: { + set: undefined + } + }); + + var hasProperty = obj.hasOwnProperty("property"); + var verifyGet = false; + verifyGet = (obj.property === 10); + + var verifySet = false; + var desc = Object.getOwnPropertyDescriptor(obj, "property"); + verifySet = (typeof desc.set === 'undefined'); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "property") { + verifyEnumerable = true; + } + } + + var verifyConfigurable = false; + delete obj.property; + verifyConfigurable = obj.hasOwnProperty("property"); + + return hasProperty && verifyGet && verifySet && verifyEnumerable && !verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-106.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-106.js new file mode 100644 index 0000000000..47039f5386 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-106.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-106", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-106.js", + + description: "Object.defineProperties - 'P' is accessor property, P.[[Set]] is undefined and properties.[[Set]] is normal value (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: undefined, + enumerable: true, + configurable: true + }); + + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperties(obj, { + foo: { + set: set_func + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-107.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-107.js new file mode 100644 index 0000000000..1a0cd05e79 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-107.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-107", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-107.js", + + description: "Object.defineProperties - 'P' is accessor property, P.enumerable and properties.enumerable are different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + enumerable: false + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-108.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-108.js new file mode 100644 index 0000000000..cd8cd63f20 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-108.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-108", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-108.js", + + description: "Object.defineProperties - 'P' is accessor property, P.configurable is true and properties.configurable is false", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + configurable: false + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-109.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-109.js new file mode 100644 index 0000000000..1b49831331 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-109.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-6-a-109", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-109.js", + + description: "Object.defineProperties - 'P' is accessor property, several attributes values of P and properties are different (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + function get_func1() { + return 10; + } + function set_func1() { } + + Object.defineProperty(obj, "foo", { + get: get_func1, + set: set_func1, + configurable: true + }); + + function get_func2() { + return 20; + } + function set_func2(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperties(obj, { + foo: { + get: get_func2, + set: set_func2, + configurable: false + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func2, set_func2, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-11.js new file mode 100644 index 0000000000..48125cc19a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-11.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: "15.2.3.7-6-a-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-11.js", + + description: "Object.defineProperties - 'P' is inherited accessor property without a get function (8.12.9 step 1 ) ", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + set: function () { }, + configurable: false + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + + Object.defineProperties(obj, { + prop: { + get: function () { + return 12; + }, + configurable: true + } + }); + return obj.hasOwnProperty("prop") && obj.prop === 12; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-110.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-110.js new file mode 100644 index 0000000000..3fced636d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-110.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-110", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-110.js", + + description: "Object.defineProperties - all own properties (data property and accessor property)", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + var properties = { + foo1: { + value: 200, + enumerable: true, + writable: true, + configurable: true + }, + foo2: { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + } + }; + + Object.defineProperties(obj, properties); + return dataPropertyAttributesAreCorrect(obj, "foo1", 200, true, true, true) && accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "setVerifyHelpProp", true, true); + + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-111.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-111.js new file mode 100644 index 0000000000..e91555655d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-111.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.7-6-a-111", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-111.js", + + description: "Object.defineProperties - each properties are in list order", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 20; + } + + function set_func() { } + + var properties = { + a: { + value: 100, + enumerable: true, + writable: true, + configurable: true + }, + b: { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }, + c: { + value: 200, + enumerable: true, + writable: true, + configurable: true + } + }; + + Object.defineProperties(obj, properties); + return (obj["a"] === 100 && obj["b"] === 20 && obj["c"] === 200); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-112.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-112.js new file mode 100644 index 0000000000..df3ce270c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-112.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: "15.2.3.7-6-a-112", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-112.js", + + description: "Object.defineProperties - 'O' is an Array, test the length property of 'O' is own data property (15.4.5.1 step 1)", + + test: function testcase() { + + var arr = [0, 1]; + Object.defineProperty(arr, "1", { + value: 1, + configurable: false + }); + try { + + Object.defineProperties(arr, { + length: { value: 1 } + }); + return false; + } catch (ex) { + var desc = Object.getOwnPropertyDescriptor(arr, "length"); + + return ex instanceof TypeError && desc.value === 2 && + desc.writable && !desc.enumerable && !desc.configurable; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-113.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-113.js new file mode 100644 index 0000000000..88737367e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-113.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-113", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-113.js", + + description: "Object.defineProperties - 'O' is an Array, test the length property of 'O' is own data property that overrides an inherited data property (15.4.5.1 step 1)", + + test: function testcase() { + + var arrProtoLen; + var arr = [0, 1, 2]; + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + + Object.defineProperty(arr, "2", { + configurable: false + }); + + Object.defineProperties(arr, { + length: { value: 1 } + }); + return false; + } catch (e) { + var desc = Object.getOwnPropertyDescriptor(arr, "length"); + + return e instanceof TypeError && desc.value === 3 && + desc.writable && !desc.enumerable && !desc.configurable; + } finally { + Array.prototype.length = arrProtoLen; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-114.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-114.js new file mode 100644 index 0000000000..b7cecbe26a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-114.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-114", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-114.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is absent, test every field in 'desc' is absent (15.4.5.1 step 3.a.i)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { length: {} }); + + var verifyValue = false; + verifyValue = (arr.length === 0); + + var verifyWritable = false; + arr.length = 2; + verifyWritable = (arr.length === 2); + + var verifyEnumerable = false; + for (var p in arr) { + if (p === "length") { + verifyEnumerable = true; + } + } + + var verifyConfigurable = false; + delete arr.length; + verifyConfigurable = arr.hasOwnProperty("length"); + + return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-115.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-115.js new file mode 100644 index 0000000000..16bb7896b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-115.js @@ -0,0 +1,66 @@ +/// 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: "15.2.3.7-6-a-115", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-115.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is absent, test every field in 'desc' is same with corresponding attribute value of the length property in 'O' (15.4.5.1 step 3.a.i)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + length: { + writable: true, + enumerable: false, + configurable: false + } + }); + + var verifyValue = false; + verifyValue = (arr.length === 0); + + var verifyWritable = false; + arr.length = 2; + verifyWritable = (arr.length === 2); + + var verifyEnumerable = false; + for (var p in arr) { + if (p === "length") { + verifyEnumerable = true; + } + } + + var verifyConfigurable = false; + delete arr.length; + verifyConfigurable = arr.hasOwnProperty("length"); + + return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-116.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-116.js new file mode 100644 index 0000000000..e9d0ad9d1c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-116.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-116", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-116.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is absent, test TypeError is thrown when updating the [[Configurable]] attribute of the length property from false to true (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { configurable: true } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-117.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-117.js new file mode 100644 index 0000000000..b1c24a3fe2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-117.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-117", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-117.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is absent, test TypeError is thrown when updating the [[Enumerable]] attribute of the length property from false to true (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { enumerable: true } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-118.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-118.js new file mode 100644 index 0000000000..677653b53b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-118.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-118", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-118.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is absent, test TypeError is thrown when 'desc' is accessor descriptor (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + get: function () { + return 2; + } + } + }); + + return false; + } catch (e) { + return e instanceof TypeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-119.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-119.js new file mode 100644 index 0000000000..f929a27758 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-119.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-119", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-119.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is absent, test TypeError is thrown when updating the [[Writable]] attribute of the length property from false to true (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "length", { + writable: false + }); + + try { + Object.defineProperties(arr, { + length: { writable: true } + }); + + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-12.js new file mode 100644 index 0000000000..84dce21337 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-12.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-12.js", + + description: "Object.defineProperties - 'O' is a Function object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + var fun = function () { }; + + Object.defineProperty(fun, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(fun, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(fun, "prop", 11, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-120.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-120.js new file mode 100644 index 0000000000..6c9149ea39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-120.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-120", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-120.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is absent, test updating the [[Writable]] attribute of the length property from true to false (15.4.5.1 step 3.a.i)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { writable: false } + }); + + return dataPropertyAttributesAreCorrect(arr, "length", 0, false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-121.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-121.js new file mode 100644 index 0000000000..00c4680f08 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-121.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-121", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-121.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', test RangeError is thrown when setting the [[Value]] field of 'desc' to undefined (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { value: undefined } + }); + + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-122.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-122.js new file mode 100644 index 0000000000..468b634b1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-122.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-122", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-122.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', test setting the [[Value]] field of 'desc' to null actuall is set to 0 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { value: null } + }); + return arr.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-123.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-123.js new file mode 100644 index 0000000000..fa404f7e9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-123.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-123", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-123.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a boolean with value false (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { value: false } + }); + return arr.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-124.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-124.js new file mode 100644 index 0000000000..cb5c75c789 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-124.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-124", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-124.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a boolean with value true (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { value: true } + }); + return arr.length === 1; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-125.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-125.js new file mode 100644 index 0000000000..5e5f2929fa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-125.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-125", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-125.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is 0 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { value: 0 } + }); + return arr.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-126.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-126.js new file mode 100644 index 0000000000..39890bfd50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-126.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-126", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-126.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is +0 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { value: +0 } + }); + return arr.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-127.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-127.js new file mode 100644 index 0000000000..caa213db6b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-127.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-127", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-127.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is -0 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { value: -0 } + }); + return arr.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-128.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-128.js new file mode 100644 index 0000000000..33483443b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-128.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-128", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-128.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is positive number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { value: 12 } + }); + return arr.length === 12; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-129.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-129.js new file mode 100644 index 0000000000..9cf7060b52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-129.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-129", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-129.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is negative number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: -9 + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-13.js new file mode 100644 index 0000000000..25b61a44f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-13.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-13.js", + + description: "Object.defineProperties - 'O' is an Array object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(arr, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(arr, "prop", 11, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-130.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-130.js new file mode 100644 index 0000000000..a0f2f0cfbb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-130.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-130", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-130.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is +Infinity (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: +Infinity + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-131.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-131.js new file mode 100644 index 0000000000..c7df748522 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-131.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-131", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-131.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is -Infinity (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: -Infinity + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-132.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-132.js new file mode 100644 index 0000000000..752b5d4890 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-132.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-132", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-132.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is NaN (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: NaN + } + }); + + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-133.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-133.js new file mode 100644 index 0000000000..6c84975a30 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-133.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-133", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-133.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing a positive number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { + value: "2" + } + }); + return arr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-134.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-134.js new file mode 100644 index 0000000000..9e0f6a1d47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-134.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-134", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-134.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing a negative number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: "-42" + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-135.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-135.js new file mode 100644 index 0000000000..048574b82d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-135.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-135", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-135.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing a decimal number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: "200.59" + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-136.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-136.js new file mode 100644 index 0000000000..1a092deb53 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-136.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-136", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-136.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing +Infinity (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: "+Infinity" + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-137.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-137.js new file mode 100644 index 0000000000..d404c001c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-137.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-137", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-137.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing -Infinity (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: "-Infinity" + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-138.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-138.js new file mode 100644 index 0000000000..15f4c52abf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-138.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-138", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-138.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing an exponential number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { + value: "2E3" + } + }); + return arr.length === 2E3; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-139.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-139.js new file mode 100644 index 0000000000..36f1d01639 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-139.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-139", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-139.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing an hex number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { + value: "0x00B" + } + }); + return arr.length === 0x00B; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-14.js new file mode 100644 index 0000000000..8b988c0cb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-14.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-14.js", + + description: "Object.defineProperties - 'O' is a String object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + var str = new String(); + + Object.defineProperty(str, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(str, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(str, "prop", 11, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-140.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-140.js new file mode 100644 index 0000000000..d438eeafcd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-140.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-140", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-140.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is a string containing an leading zero number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { + value: "0002.0" + } + }); + return arr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-141.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-141.js new file mode 100644 index 0000000000..cd8e6ac960 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-141.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-141", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-141.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', test the [[Value]] field of 'desc' is a string which doesn't convert to a number (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: "two" + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-142.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-142.js new file mode 100644 index 0000000000..d098aa8b8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-142.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-142", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-142.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', test the [[Value]] field of 'desc' is an Object which has an own toString method (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { + value: { + toString: function () { + return '2'; + } + } + } + }); + + return arr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-143.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-143.js new file mode 100644 index 0000000000..9a4a927327 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-143.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-143", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-143.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is an Object which has an own valueOf method (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { + value: { + valueOf: function () { + return 2; + } + } + } + }); + return arr.length === 2; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-144.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-144.js new file mode 100644 index 0000000000..8d21efa4d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-144.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-144", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-144.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is an Object which has an own valueOf method that returns an object and toString method that returns a string (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + var toStringAccessed = false; + var valueOfAccessed = false; + + Object.defineProperties(arr, { + length: { + value: { + toString: function () { + toStringAccessed = true; + return '2'; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + } + } + }); + return arr.length === 2 && toStringAccessed && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-145.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-145.js new file mode 100644 index 0000000000..e1e88a403f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-145.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-145", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-145.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is an Object which has an own toString and valueOf method (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + var toStringAccessed = false; + var valueOfAccessed = false; + + Object.defineProperties(arr, { + length: { + value: { + toString: function () { + toStringAccessed = true; + return '2'; + }, + + valueOf: function () { + valueOfAccessed = true; + return 3; + } + } + } + }); + return arr.length === 3 && !toStringAccessed && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-146.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-146.js new file mode 100644 index 0000000000..e480bb9924 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-146.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-6-a-146", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-146.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test TypeError is thrown when the [[Value]] field of 'desc' is an Object that both toString and valueOf wouldn't return primitive value (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + var toStringAccessed = false; + var valueOfAccessed = false; + + try { + Object.defineProperties(arr, { + length: { + value: { + toString: function () { + toStringAccessed = true; + return {}; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + } + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && toStringAccessed && valueOfAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-147.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-147.js new file mode 100644 index 0000000000..3b96b5a9f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-147.js @@ -0,0 +1,68 @@ +/// 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: "15.2.3.7-6-a-147", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-147.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test using inherited valueOf method when the [[Value]] field of 'desc' is an Objec with an own toString and inherited valueOf methods (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + var toStringAccessed = false; + var valueOfAccessed = false; + + var proto = { + value: { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "value", { + value: { + toString: function () { + toStringAccessed = true; + return 3; + } + } + }); + + Object.defineProperties(arr, { + length: child + }); + return arr.length === 3 && toStringAccessed && !valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-148.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-148.js new file mode 100644 index 0000000000..559f90b348 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-148.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-148", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-148.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is positive non-integer values (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: 123.5 + } + }); + + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-149.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-149.js new file mode 100644 index 0000000000..276ca44a18 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-149.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-149", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-149.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is negative non-integer values (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + try { + Object.defineProperties(arr, { + length: { + value: -4294967294.5 + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-15.js new file mode 100644 index 0000000000..06575e415b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-15.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-15.js", + + description: "Object.defineProperties - 'O' is a Boolean object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + + var obj = new Boolean(false); + + Object.defineProperty(obj, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-150.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-150.js new file mode 100644 index 0000000000..32de1e7b70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-150.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-150", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-150.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is boundary value 2^32 - 2 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { + value: 4294967294 + } + }); + + return arr.length === 4294967294; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-151.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-151.js new file mode 100644 index 0000000000..c94f8f2eb5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-151.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-151", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-151.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test the [[Value]] field of 'desc' is boundary value 2^32 - 1 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + length: { + value: 4294967295 + } + }); + + return arr.length === 4294967295; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-152.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-152.js new file mode 100644 index 0000000000..815794e668 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-152.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-152", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-152.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is boundary value 2^32 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + try { + Object.defineProperties(arr, { + length: { + value: 4294967296 + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-153.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-153.js new file mode 100644 index 0000000000..f166a21824 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-153.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-153", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-153.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is the length property of 'O', test RangeError is thrown when the [[Value]] field of 'desc' is boundary value 2^32 + 1 (15.4.5.1 step 3.c)", + + test: function testcase() { + + var arr = []; + try { + Object.defineProperties(arr, { + length: { + value: 4294967297 + } + }); + return false; + } catch (e) { + return e instanceof RangeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-155.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-155.js new file mode 100644 index 0000000000..4d9723f570 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-155.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-155", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-155.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', test the [[Value]] field of 'desc' which is greater than value of the length property is defined into 'O' without deleting any property with large index named (15.4.5.1 step 3.f)", + + test: function testcase() { + + var arr = [0, , 2]; + + try { + Object.defineProperties(arr, { + length: { + value: 5 + } + }); + + return arr.length === 5 && arr[0] === 0 && !arr.hasOwnProperty("1") && arr[2] === 2; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-156.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-156.js new file mode 100644 index 0000000000..343b240bde --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-156.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-156", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-156.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', test the [[Value]] field of 'desc' which equals to value of the length property is defined into 'O' without deleting any property with large index named (15.4.5.1 step 3.f)", + + test: function testcase() { + + var arr = [0, , 2]; + try { + Object.defineProperties(arr, { + length: { + value: 3 + } + }); + + return arr.length === 3 && arr[0] === 0 && !arr.hasOwnProperty("1") && arr[2] === 2; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-157.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-157.js new file mode 100644 index 0000000000..19d1870304 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-157.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-157", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-157.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', test the [[Value]] field of 'desc' which is less than value of the length property is defined into 'O' with deleting properties with large index named (15.4.5.1 step 3.f)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + return arr.length === 1 && !arr.hasOwnProperty("1") && arr[0] === 0; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-158.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-158.js new file mode 100644 index 0000000000..451f9adf4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-158.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: "15.2.3.7-6-a-158", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-158.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is greater than value of the length property, test TypeError is thrown when the length property is not writable (15.4.5.1 step 3.f.i)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "length", { + writable: false + }); + + try { + Object.defineProperties(arr, { + length: { + value: 12 + } + }); + + return false; + } catch (e) { + return e instanceof TypeError && arr.length === 0; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-159.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-159.js new file mode 100644 index 0000000000..8d73082a5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-159.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-159", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-159.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' equals to value of the length property, test TypeError wouldn't be thrown when the length property is not writable (15.4.5.1 step 3.f.i)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "length", { + writable: false + }); + + try { + Object.defineProperties(arr, { + length: { + value: 0 + } + }); + return true && arr.length === 0; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-16.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-16.js new file mode 100644 index 0000000000..58ad0742ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-16.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-16", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-16.js", + + description: "Object.defineProperties - 'O' is a Number object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + + var obj = new Number(-9); + + Object.defineProperty(obj, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-160.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-160.js new file mode 100644 index 0000000000..f36252b746 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-160.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-160", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-160.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test TypeError is thrown when the [[Writable]] attribute of the length property is false (15.4.5.1 step 3.g)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperty(arr, "length", { + writable: false + }); + + try { + Object.defineProperties(arr, { + length: { + value: 0 + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr.length === 2 && arr[0] === 0 && arr[1] === 1; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-161.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-161.js new file mode 100644 index 0000000000..d622d1464b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-161.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-161", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-161.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to true at last after deleting properties with large index named if the [[Writable]] field of 'desc' is absent (15.4.5.1 step 3.h)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + + arr.length = 10; //try to overwrite length value of arr + return !arr.hasOwnProperty("1") && arr.length === 10 && arr[0] === 0; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-162.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-162.js new file mode 100644 index 0000000000..118aa6a844 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-162.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-162", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-162.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to true at last after deleting properties with large index named if the [[Writable]] field of 'desc' is true (15.4.5.1 step 3.h)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { + value: 1, + writable: true + } + }); + + arr.length = 10; //try to overwrite length value of arr + return !arr.hasOwnProperty("1") && arr.length === 10 && arr[0] === 0; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-163.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-163.js new file mode 100644 index 0000000000..7cf09cda13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-163.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-163", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-163.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to false at last after deleting properties with large index named if the [[Writable]] field of 'desc' is false (15.4.5.1 step 3.i.ii)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { + value: 1, + writable: false + } + }); + + arr.length = 10; //try to overwrite length value of arr + return !arr.hasOwnProperty("1") && arr.length === 1 && arr[0] === 0; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-164.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-164.js new file mode 100644 index 0000000000..4298d7b4f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-164.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-164", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-164.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property in 'O' is set as true before deleting properties with large index named (15.4.5.1 step 3.i.iii)", + + test: function testcase() { + + var arr = [0, 1, 2]; + var result = 0; + + try { + Object.defineProperty(arr, "1", { + configurable: false + }); + + Object.defineProperties(arr, { + length: { + value: 0, + writable: false + } + }); + + return false; + } catch (e) { + result = (arr.length === 2); + arr.length = 10; + return (e instanceof TypeError) && result && arr.length === 2; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-165.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-165.js new file mode 100644 index 0000000000..064cdc99d5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-165.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-165", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-165.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the length property is decreased by 1 (15.4.5.1 step 3.l.i)", + + test: function testcase() { + + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "1", { + configurable: false + }); + + Object.defineProperty(arr, "2", { + configurable: true + }); + + try { + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr.length === 2 && + !arr.hasOwnProperty("2") && arr[0] === 0 && arr[1] === 1; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-166.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-166.js new file mode 100644 index 0000000000..f635cd2314 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-166.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-166", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-166.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own data property with large index named in 'O' can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + + try { + Object.defineProperty(arr, "1", { + configurable: false + }); + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && arr.length === 2 && + arr.hasOwnProperty("1") && arr[0] === 0 && arr[1] === 1; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-167.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-167.js new file mode 100644 index 0000000000..0dcb1ea769 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-167.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-167", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-167.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of inherited data property with large index named in 'O' can't stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + try { + Array.prototype[1] = 2; //we are not allowed to set the [[Configurable]] attribute of property "1" to false here, since Array.prototype is a global object, and non-configurbale property can't revert to configurable + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + + return arr.length === 1 && !arr.hasOwnProperty("1") && arr[0] === 0 && Array.prototype[1] === 2; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-168.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-168.js new file mode 100644 index 0000000000..ce0d2b2dd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-168.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-168", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-168.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own data property with large index named in 'O' that overrides inherited data property can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + try { + Object.defineProperty(arr, "1", { + configurable: false + }); + + Array.prototype[1] = 2; + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr.length === 2 && + arr.hasOwnProperty("1") && arr[0] === 0 && arr[1] === 1; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-169.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-169.js new file mode 100644 index 0000000000..240388afc5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-169.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.7-6-a-169", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-169.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own data property with large index named in 'O' that overrides inherited accessor property can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + try { + Object.defineProperty(arr, "1", { + configurable: false + }); + + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 2; + }, + configurable: true + }); + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + + return false; + } catch (e) { + return e instanceof TypeError && arr.length === 2 && arr.hasOwnProperty("1") && + arr[0] === 0 && arr[1] === 1 && Array.prototype[1] === 2; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-17.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-17.js new file mode 100644 index 0000000000..3bf85a4160 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-17.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-17", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-17.js", + + description: "Object.defineProperties - 'O' is the Math object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + + try { + Object.defineProperty(Math, "prop", { + value: 11, + writable: true, + configurable: true + }); + var hasProperty = Math.hasOwnProperty("prop") && Math.prop === 11; + + Object.defineProperties(Math, { + prop: { + value: 12 + } + }); + return hasProperty && Math.prop === 12; + } finally { + delete Math.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-170.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-170.js new file mode 100644 index 0000000000..552700181b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-170.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-170", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-170.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own accessor property with large index named in 'O' can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + + try { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: false + }); + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && arr.length === 2 && + arr.hasOwnProperty("1") && arr[0] === 0 && arr[1] === 1; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-171.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-171.js new file mode 100644 index 0000000000..93e229e272 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-171.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-171", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-171.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of inherited accessor property with large index named in 'O' can't stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 1; + }, + configurable: true //we are not allowed to set the [[Configurable]] attribute of property "1" to false here, since Array.prototype is a global object, and non-configurbale property can't revert to configurable + }); + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + + return arr.length === 1 && !arr.hasOwnProperty("1") && arr[0] === 0 && Array.prototype[1] === 1; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-172.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-172.js new file mode 100644 index 0000000000..038e1c5547 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-172.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-6-a-172", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-172.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own accessor property with large index named in 'O' that overrides inherited data property can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + try { + Object.defineProperty(arr, "1", { + get: function () { + return 2; + }, + configurable: false + }); + + Array.prototype[1] = 3; + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr.length === 2 && + arr.hasOwnProperty("1") && arr[0] === 0 && arr[1] === 2; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-173.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-173.js new file mode 100644 index 0000000000..f27ed7f401 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-173.js @@ -0,0 +1,66 @@ +/// 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: "15.2.3.7-6-a-173", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-173.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Configurable]] attribute of own accessor property with large index named in 'O' that overrides inherited accessor property can stop deleting index named properties (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + try { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: false + }); + + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 2; + }, + configurable: true + }); + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr.length === 2 && arr.hasOwnProperty("1") && + arr[0] === 0 && arr[1] === 1 && Array.prototype[1] === 2; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-174.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-174.js new file mode 100644 index 0000000000..77d78e61b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-174.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-174", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-174.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the configurable large index named property of 'O' can be deleted (15.4.5.1 step 3.l.ii)", + + test: function testcase() { + + var arr = [0, 1]; + + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + + return !arr.hasOwnProperty("1"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-175.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-175.js new file mode 100644 index 0000000000..6e799891fa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-175.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-175", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-175.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test value of the length property is set to the last non-configurable index named property of 'O' plus 1 (15.4.5.1 step 3.l.iii.1)", + test: function testcase() { + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "1", { + configurable: false + }); + + try { + Object.defineProperties(arr, { + length: { + value: 1 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && (arr.length === 2); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-176.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-176.js new file mode 100644 index 0000000000..b5abb20bda --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-176.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-176", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-176.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to false at last when the [[Writable]] field of 'desc' is false and 'O' contains non-configurable large index named property (15.4.5.1 step 3.l.iii.2)", + + test: function testcase() { + + var arr = [0, 1]; + + try { + Object.defineProperty(arr, "1", { + configurable: false + }); + + Object.defineProperties(arr, { + length: { + value: 1, + writable: false + } + }); + return false; + } catch (e) { + arr.length = 10; //try to overwrite length value of arr + return e instanceof TypeError && arr.hasOwnProperty("1") && + arr.length === 2 && arr[0] === 0 && arr[1] === 1; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-177.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-177.js new file mode 100644 index 0000000000..3998a1344e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-177.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-177", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-177.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is the length property of 'O', the [[Value]] field of 'desc' is less than value of the length property, test the [[Writable]] attribute of the length property is set to false at last when the [[Writable]] field of 'desc' is false and 'O' doesn't contain non-configurable large index named property (15.4.5.1 step 3.m)", + + test: function testcase() { + + var arr = [0, 1]; + + try { + Object.defineProperties(arr, { + length: { + value: 0, + writable: false + } + }); + + arr.length = 10; //try to overwrite length value of arr + return !arr.hasOwnProperty("1") && arr.length === 0 && !arr.hasOwnProperty("0"); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-178.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-178.js new file mode 100644 index 0000000000..8bf071ac88 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-178.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-178", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-178.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is available String values that convert to numbers (15.4.5.1 step 4.a)", + + test: function testcase() { + + var arr = [0]; + + Object.defineProperties(arr, { + "0": { + value: 12 + } + }); + return arr[0] === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-179.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-179.js new file mode 100644 index 0000000000..c61b89c32a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-179.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: "15.2.3.7-6-a-179", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-179.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is boundary value 2^32 - 2 (15.4.5.1 step 4.a)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "4294967294": { + value: 100 + } + }); + + return arr.hasOwnProperty("4294967294") && arr.length === 4294967295 && arr[4294967294] === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-18.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-18.js new file mode 100644 index 0000000000..18f959b722 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-18.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-18", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-18.js", + + description: "Object.defineProperties - 'O' is a Date object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + + var obj = new Date(); + + Object.defineProperty(obj, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-180.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-180.js new file mode 100644 index 0000000000..3c19f74ba1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-180.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: "15.2.3.7-6-a-180", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-180.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is boundary value 2^32 - 1 (15.4.5.1 step 4.a)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "4294967295": { + value: 100 + } + }); + + return arr.hasOwnProperty("4294967295") && arr.length === 0 && arr[4294967295] === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-181.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-181.js new file mode 100644 index 0000000000..05c1869b09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-181.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: "15.2.3.7-6-a-181", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-181.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is boundary value 2^32 (15.4.5.1 step 4.a)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "4294967296": { + value: 100 + } + }); + + return arr.hasOwnProperty("4294967296") && arr.length === 0 && arr[4294967296] === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-182.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-182.js new file mode 100644 index 0000000000..101ab82ac6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-182.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: "15.2.3.7-6-a-182", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-182.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is boundary value 2^32 + 1 (15.4.5.1 step 4.a)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "4294967297": { + value: 100 + } + }); + + return arr.hasOwnProperty("4294967297") && arr.length === 0 && arr[4294967297] === 100; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-183.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-183.js new file mode 100644 index 0000000000..18cc2fb67a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-183.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-183", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-183.js", + + description: "Object.defineProperties - TypeError is not thrown if 'O' is an Array, 'P' is an array index named property, [[Writable]] attribute of the length property in 'O' is false, value of 'P' is less than value of the length property in'O' (15.4.5.1 step 4.b)", + + test: function testcase() { + var arr = [1, 2, 3]; + + Object.defineProperty(arr, "length", { + writable: false + }); + + Object.defineProperties(arr, { + "1": { + value: "abc" + } + }); + + return arr[0] === 1 && arr[1] === "abc" && arr[2] === 3; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-184.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-184.js new file mode 100644 index 0000000000..138c57ffa3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-184.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-184", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-184.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property,[[Writable]] attribute of the length property in 'O' is false, value of 'P' is equal to value of the length property in 'O' (15.4.5.1 step 4.b)", + + test: function testcase() { + var arr = [1, 2, 3]; + + Object.defineProperty(arr, "length", { + writable: false + }); + + try { + Object.defineProperties(arr, { + "3": { + value: "abc" + } + }); + + return false; + } catch (e) { + return e instanceof TypeError && arr[0] === 1 && + arr[1] === 2 && arr[2] === 3 && !arr.hasOwnProperty("3"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-185.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-185.js new file mode 100644 index 0000000000..cf2f79100f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-185.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-185", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-185.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property,[[Writable]] attribute of the length property in 'O' is false, value of 'P' is bigger than value of the length property in 'O' (15.4.5.1 step 4.b)", + + test: function testcase() { + var arr = [1, 2, 3]; + + Object.defineProperty(arr, "length", { + writable: false + }); + + try { + Object.defineProperties(arr, { + "4": { + value: "abc" + } + }); + + return false; + } catch (e) { + return e instanceof TypeError && arr[0] === 1 && arr[1] === 2 && + arr[2] === 3 && !arr.hasOwnProperty("3") && !arr.hasOwnProperty("4"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-186.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-186.js new file mode 100644 index 0000000000..a34e1daa09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-186.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-186", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-186.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is own data property (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + Object.defineProperty(arr, 0, { + value: "ownDataProperty", + configurable: false + }); + + try { + Object.defineProperties(arr, { + "0": { + value: "abc", + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr[0] === "ownDataProperty"; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-187.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-187.js new file mode 100644 index 0000000000..58079b025e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-187.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-187", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-187.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is inherited data property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 11, + configurable: true + }); + + var arr = []; + + Object.defineProperties(arr, { + "0": { + configurable: false + } + }); + return arr.hasOwnProperty("0") && typeof arr[0] === "undefined" && Array.prototype[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-188.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-188.js new file mode 100644 index 0000000000..1d5fb333aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-188.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-188", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-188.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is own data property that overrides an inherited data property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 11, + configurable: true + }); + + var arr = []; + Object.defineProperty(arr, "0", { + value: 12, + configurable: false + }); + + Object.defineProperties(arr, { + "0": { + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr[0] === 12 && Array.prototype[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-189.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-189.js new file mode 100644 index 0000000000..05f2041f49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-189.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-189", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-189.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is own data property that overrides an inherited accessor property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + var arr = []; + Object.defineProperty(arr, "0", { + value: 12, + configurable: false + }); + + Object.defineProperties(arr, { + "0": { + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr[0] === 12 && Array.prototype[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-19.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-19.js new file mode 100644 index 0000000000..28e1c002c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-19.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-19", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-19.js", + + description: "Object.defineProperties - 'O' is a RegExp object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + + var obj = new RegExp(); + + Object.defineProperty(obj, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-190.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-190.js new file mode 100644 index 0000000000..30bba69e28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-190.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-190", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-190.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is own accessor property (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + get: function () { + return 11; + }, + configurable: false + }); + + try { + Object.defineProperties(arr, { + "0": { + get: function () { + return 12; + }, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr[0] === 11; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-191.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-191.js new file mode 100644 index 0000000000..687c04498f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-191.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-191", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-191.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, 'P' is inherited accessor property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + var arr = []; + + Object.defineProperties(arr, { + "0": { + get: function () { + return 12; + }, + configurable: false + } + }); + return arr.hasOwnProperty("0") && arr[0] === 12 && Array.prototype[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-192.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-192.js new file mode 100644 index 0000000000..eb8d0dccc2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-192.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-192", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-192.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is own accessor property that overrides an inherited data property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 11, + configurable: true + }); + + var arr = []; + Object.defineProperty(arr, "0", { + get: function () { + return 12; + }, + configurable: false + }); + + Object.defineProperties(arr, { + "0": { + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr[0] === 12 && Array.prototype[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-193.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-193.js new file mode 100644 index 0000000000..3197d0451e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-193.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-6-a-193", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-193.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' is own accessor property that overrides an inherited accessor property (15.4.5.1 step 4.c)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + var arr = []; + Object.defineProperty(arr, "0", { + get: function () { + return 12; + }, + configurable: false + }); + + Object.defineProperties(arr, { + "0": { + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && arr[0] === 12 && Array.prototype[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-194.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-194.js new file mode 100644 index 0000000000..9491c30021 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-194.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-194", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-194.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test TypeError is thrown when 'O' is not extensible (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + Object.preventExtensions(arr); + + try { + Object.defineProperties(arr, { + "0": { + value: 1 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && (arr.hasOwnProperty("0") === false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-195.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-195.js new file mode 100644 index 0000000000..a140447cb9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-195.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: "15.2.3.7-6-a-195", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-195.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test 'P' is defined as data property when 'desc' is generic descriptor (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "0": { + enumerable: true + } + }); + + return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-196.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-196.js new file mode 100644 index 0000000000..4b70c2ce02 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-196.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-196", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-196.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test [[Value]] of 'P' property in 'Attributes' is set as undefined value if [[Value]] is absent in data descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "0": { + writable: true, + enumerable: true, + configurable: false + } + }); + + return arr.hasOwnProperty("0") && typeof (arr[0]) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-197.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-197.js new file mode 100644 index 0000000000..f7d9b6ac2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-197.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-197", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-197.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test [[Writable]] of 'P' property in 'Attributes' is set as false value if [[Writable]] is absent in data descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + var isOwnProperty = false; + var canWritable = false; + + Object.defineProperties(arr, { + "0": { + value: 1001, + enumerable: true, + configurable: false + } + }); + + isOwnProperty = arr.hasOwnProperty("0"); + + arr[0] = 12; + + canWritable = (arr[0] === 12); + + return isOwnProperty && !canWritable && arr[0] === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-198.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-198.js new file mode 100644 index 0000000000..d12370c959 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-198.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-198", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-198.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test [[Enumerable]] of 'P' property in 'Attributes' is set as false value if [[Enumerable]] is absent in data descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + var isOwnProperty = false; + var canEnumerable = false; + + Object.defineProperties(arr, { + "0": { + value: 1001, + writable: true, + configurable: true + } + }); + + isOwnProperty = arr.hasOwnProperty("0"); + for (var i in arr) { + if (i === "0") { + canEnumerable = true; + } + } + return isOwnProperty && !canEnumerable && arr[0] === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-199.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-199.js new file mode 100644 index 0000000000..42b175392c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-199.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-199", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-199.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test [[Configurable]] of 'P' property in 'Attributes' is set as false value if [[Configurable]] is absent in data descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + var beforeDeleted = false; + var afterDeleted = false; + + Object.defineProperties(arr, { + "0": { + value: 1001, + writable: true, + enumerable: true + } + }); + + beforeDeleted = arr.hasOwnProperty("0"); + delete arr[0]; + afterDeleted = arr.hasOwnProperty("0"); + return beforeDeleted && afterDeleted && arr[0] === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-2.js new file mode 100644 index 0000000000..b6b9007345 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-2.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-2.js", + + description: "Object.defineProperties - 'P' is inherited data property (8.12.9 step 1 ) ", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + value: 11, + configurable: false + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + + return dataPropertyAttributesAreCorrect(obj, "prop", 12, false, false, true); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-20.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-20.js new file mode 100644 index 0000000000..eefb2c42a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-20.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-20", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-20.js", + + description: "Object.defineProperties - 'O' is a JSON object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + + try { + Object.defineProperty(JSON, "prop", { + value: 11, + writable: true, + configurable: true + }); + var hasProperty = JSON.hasOwnProperty("prop") && JSON.prop === 11; + Object.defineProperties(JSON, { + prop: { + value: 12 + } + }); + return hasProperty && JSON.prop === 12; + } finally { + delete JSON.prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-200.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-200.js new file mode 100644 index 0000000000..3f5c763cd6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-200.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-200", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-200.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'desc' is data descriptor, test updating all attribute values of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(arr, { + "0": { + value: 1001, + writable: false, + enumerable: false, + configurable: false + } + }); + + return dataPropertyAttributesAreCorrect(arr, "0", 1001, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-201.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-201.js new file mode 100644 index 0000000000..351ff866f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-201.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-201", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-201.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test [[Get]] of 'P' property in 'Attributes' is set as undefined value if [[Get]] is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "0": { + set: function () { }, + enumerable: true, + configurable: true + } + }); + + return arr.hasOwnProperty("0") && typeof (arr[0]) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-202.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-202.js new file mode 100644 index 0000000000..8305e30c12 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-202.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-6-a-202", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-202.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test [[Set]] of 'P' property in 'Attributes' is set as undefined value if [[Set]] is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + var getFunc = function () { + return 11; + }; + + Object.defineProperties(arr, { + "0": { + get: getFunc, + enumerable: true, + configurable: true + } + }); + + var verifyEnumerable = false; + for (var i in arr) { + if (i === "0" && arr.hasOwnProperty("0")) { + verifyEnumerable = true; + } + } + + var desc = Object.getOwnPropertyDescriptor(arr, "0"); + var propertyDefineCorrect = arr.hasOwnProperty("0"); + + var verifyConfigurable = false; + delete arr[0]; + verifyConfigurable = arr.hasOwnProperty("0"); + return typeof desc.set === "undefined" && propertyDefineCorrect && + desc.get === getFunc && !verifyConfigurable && verifyEnumerable; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-203.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-203.js new file mode 100644 index 0000000000..c63c34a9bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-203.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-203", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-203.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test [[Enumerable]] of 'P' property in 'Attributes' is set as false value if [[Enumerable]] is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "0": { + set: function () { }, + get: function () { }, + configurable: true + } + }); + + for (var i in arr) { + if (i === "0" && arr.hasOwnProperty("0")) { + return false; + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-204.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-204.js new file mode 100644 index 0000000000..aa19d73ade --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-204.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-204", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-204.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' property doesn't exist in 'O', test [[Configurable]] of 'P' property in 'Attributes' is set as false value if [[Configurable]] is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + var beforeDeleted = false; + var afterDeleted = false; + arr.verifySetter = 100; + + Object.defineProperties(arr, { + "0": { + set: function (value) { + arr.verifySetter = value; + }, + get: function () { + return arr.verifySetter; + }, + enumerable: true + } + }); + + beforeDeleted = arr.hasOwnProperty("0"); + delete arr[0]; + afterDeleted = arr.hasOwnProperty("0"); + + arr[0] = 101; + + return beforeDeleted && afterDeleted && arr[0] === 101 && arr.verifySetter === 101; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-205.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-205.js new file mode 100644 index 0000000000..29f4d9297e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-205.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-6-a-205", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-205.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'desc' is accessor descriptor, test updating all attribute values of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperties(arr, { + "0": { + get: function () { + return 11; + }, + set: function () { }, + configurable: true, + enumerable: true + } + }); + + var setFun = function (value) { + arr.setVerifyHelpProp = value; + }; + var getFun = function () { + return 14; + }; + Object.defineProperties(arr, { + "0": { + get: getFun, + set: setFun, + configurable: false, + enumerable: false + } + }); + + return accessorPropertyAttributesAreCorrect(arr, "0", getFun, setFun, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-206.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-206.js new file mode 100644 index 0000000000..2334b8bf68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-206.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-206", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-206.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' makes no change if every field in 'desc' is absent (name is data property) (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + arr[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + try { + Object.defineProperties(arr, { + "0": {} + }); + return dataPropertyAttributesAreCorrect(arr, "0", 101, true, true, true); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-207.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-207.js new file mode 100644 index 0000000000..01d35d48b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-207.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-207", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-207.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' makes no change if every field in 'desc' is absent (name is accessor property) (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + function get_func() { + return 11; + } + function set_func(value) { + arr.setVerifyHelpProp = value; + } + + Object.defineProperty(arr, "0", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": {} + }); + return accessorPropertyAttributesAreCorrect(arr, "0", get_func, set_func, "setVerifyHelpProp", true, true); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-208.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-208.js new file mode 100644 index 0000000000..a685247e2e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-208.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-208", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-208.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' makes no change if the value of every field in 'desc' is the same value as the corresponding field in 'P'(desc is data property) (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + arr[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(arr, { + "0": { + value: 100, + writable: true, + enumerable: true, + configurable: true + } + }); + + return dataPropertyAttributesAreCorrect(arr, "0", 100, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-209.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-209.js new file mode 100644 index 0000000000..78f3275be0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-209.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-209", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-209.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, 'P' makes no change if the value of every field in 'desc' is the same value as the corresponding field in 'P'(desc is accessor property) (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + var get_func = function () { + return "100"; + }; + var set_func = function (value) { + arr.setVerifyHelpProp = value; + }; + + var descObj = { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }; + + var properties = { + "0": descObj + }; + + Object.defineProperty(arr, "0", descObj); + + Object.defineProperties(arr, properties); + + return accessorPropertyAttributesAreCorrect(arr, "0", get_func, set_func, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-21.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-21.js new file mode 100644 index 0000000000..6975714368 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-21.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-21", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-21.js", + + description: "Object.defineProperties - 'O' is an Error object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + + var obj = new Error(); + + Object.defineProperty(obj, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-210.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-210.js new file mode 100644 index 0000000000..464c821613 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-210.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-210", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-210.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + value: undefined + }); + + Object.defineProperties(arr, { + "0": { + value: undefined + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-211.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-211.js new file mode 100644 index 0000000000..95dcd43c28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-211.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-211", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-211.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are null (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + value: null + }); + + Object.defineProperties(arr, { + "0": { + value: null + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", null, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-212.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-212.js new file mode 100644 index 0000000000..c797e238b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-212.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-212", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-212.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, both the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are NaN (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + value: NaN + }); + + Object.defineProperties(arr, { + "0": { + value: NaN + } + }); + + return dataPropertyAttributesAreCorrect(arr, "0", NaN, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-213.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-213.js new file mode 100644 index 0000000000..41117494c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-213.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-213", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-213.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' is +0, and the [[Value]] attribute value of 'name' is -0 (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + value: -0 + }); + + try { + Object.defineProperties(arr, { + "0": { + value: +0 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "0", -0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-214.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-214.js new file mode 100644 index 0000000000..9bb00e06b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-214.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-214", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-214.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' is -0, and the [[Value]] attribute value of 'name' is +0 (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + value: +0 + }); + + try { + Object.defineProperties(arr, { + "0": { + value: -0 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "0", +0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-215.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-215.js new file mode 100644 index 0000000000..3c8c6b0204 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-215.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-215", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-215.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two numbers with same vaule (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + value: 101 + }); + + try { + Object.defineProperties(arr, { + "0": { + value: 101 + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", 101, false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-216.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-216.js new file mode 100644 index 0000000000..d62e2b68cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-216.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-216", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-216.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two strings which have same length and same characters in corresponding positions (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + value: "abcd" + }); + + try { + Object.defineProperties(arr, { + "0": { + value: "abcd" + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", "abcd", false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-217.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-217.js new file mode 100644 index 0000000000..54b693beae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-217.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-217", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-217.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two booleans with same value (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + value: true + }); + + try { + Object.defineProperties(arr, { + "0": { + value: true + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", true, false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-218.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-218.js new file mode 100644 index 0000000000..7c4dcc0c22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-218.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-218", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-218.js", + + description: "Object.defineProperties - 'O' is an Array, 'name' is an array index property, the [[Value]] field of 'desc' and the [[Value]] attribute value of 'name' are two objects which refer to the same object (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + var obj1 = { length: 10 }; + Object.defineProperty(arr, "0", { + value: obj1 + }); + + var properties = { + "0": { + value: obj1 + } + }; + try { + Object.defineProperties(arr, properties); + return dataPropertyAttributesAreCorrect(arr, "0", obj1, false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-219.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-219.js new file mode 100644 index 0000000000..2d9c298c69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-219.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-219", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-219.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Writable]] true, and the [[Writable]] field of 'desc' is true (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + writable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + writable: true + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", undefined, true, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-22.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-22.js new file mode 100644 index 0000000000..f99fd7b2e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-22.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: "15.2.3.7-6-a-22", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-22.js", + + description: "Object.defineProperties - 'O' is the Arguments object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + var arg = function () { + return arguments; + }(); + + Object.defineProperty(arg, "prop", { + value: 11, + configurable: false + }); + + try { + Object.defineProperties(arg, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-220.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-220.js new file mode 100644 index 0000000000..daa2739f51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-220.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-220", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-220.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Writable]] true, and the [[Writable]] field of 'desc' is false (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + writable: true, + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + writable: false + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-221.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-221.js new file mode 100644 index 0000000000..553afd2379 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-221.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-221", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-221.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, the [[Get]] field of 'desc' and the [[Get]] attribute value of 'P' are two objects which refer to the same object (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + function get_func() { + return 10; + } + + Object.defineProperty(arr, "0", { + get: get_func + }); + + Object.defineProperties(arr, { + "0": { + get: get_func + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", get_func, undefined, undefined, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-222.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-222.js new file mode 100644 index 0000000000..0d051781b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-222.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-222", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-222.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, the [[Set]] field of 'desc' and the [[Set]] attribute value of 'P' are two objects which refer to the same object (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + function set_func(value) { + arr.setVerifyHelpProp = value; + } + + Object.defineProperty(arr, "0", { + set: set_func + }); + + try { + Object.defineProperties(arr, { + "0": { + set: set_func + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_func, "setVerifyHelpProp", false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-223.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-223.js new file mode 100644 index 0000000000..c6ae6cb868 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-223.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-223", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-223.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Enumerable]] true, the [[Enumerable]] field of 'desc' is true (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + enumerable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + enumerable: true + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, true, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-224.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-224.js new file mode 100644 index 0000000000..73aee18dbe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-224.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-224", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-224.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Enumerable]] true, the [[Enumerable]] field of 'desc' is false (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + enumerable: true, + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + enumerable: false + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-225.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-225.js new file mode 100644 index 0000000000..e349d5dc9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-225.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-225", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-225.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Configurable]] true, the [[Configurable]] field of 'desc' is true (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + configurable: true + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-226.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-226.js new file mode 100644 index 0000000000..d77365991f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-226.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-226", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-226.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property that already exists on 'O' with [[Configurable]] true, the [[Configurable]] field of 'desc' is false (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "0", { + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, false); + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-227.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-227.js new file mode 100644 index 0000000000..31ba6953cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-227.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-227", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-227.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, TypeError is thrown if the [[Configurable]] attribute value of 'P' is false and the [[Configurable]] field of 'desc' is true (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "1", { + value: 3, + configurable: false + }); + + try { + Object.defineProperties(arr, { + "1": { + value: 13, + configurable: true + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-228.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-228.js new file mode 100644 index 0000000000..4800f562d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-228.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: "15.2.3.7-6-a-228", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-228.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, TypeError is thrown if the [[Configurable]] attribute value of 'P' is false, and [[Enumerable]] of 'desc' is present and its value is different from the [[Enumerable]] attribute value of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "1", { + value: 3, + configurable: false, + enumerable: false + + }); + + try { + Object.defineProperties(arr, { + "1": { + value: 13, + enumerable: true + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-229.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-229.js new file mode 100644 index 0000000000..d1bb1a1c69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-229.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-229", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-229.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, TypeError is thrown if 'P' is accessor property, and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'P' is false (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + + Object.defineProperty(arr, "1", { + set: set_fun, + configurable: false + + }); + + try { + Object.defineProperties(arr, { + "1": { + value: 13 + } + }); + return false; + + } catch (ex) { + return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-230.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-230.js new file mode 100644 index 0000000000..da365a16b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-230.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-230", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-230.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, TypeError is thrown if 'P' is data property, and'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'P' is false (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "1", { + value: 3, + configurable: false + }); + + try { + Object.defineProperties(arr, { + "1": { + set: function () { } + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-231.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-231.js new file mode 100644 index 0000000000..e06fb82f8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-231.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-231", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-231.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, 'P' is data property and 'desc' is accessor descriptor, and the [[Configurable]] attribute value of 'P' is true, test 'P' is converted from data property to accessor property (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + arr[1] = 3; // default value of attributes: writable: true, configurable: true, enumerable: true + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + + Object.defineProperties(arr, { + "1": { + set: set_fun + } + }); + + return accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-232.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-232.js new file mode 100644 index 0000000000..fcb562849f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-232.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-232", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-232.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, 'P' is accessor property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'P' is true, test 'P' is converted from accessor property to data property (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "1", { + get: function () { + return 3; + }, + configurable: true + + }); + + Object.defineProperties(arr, { + "1": { + value: 12 + } + }); + + return dataPropertyAttributesAreCorrect(arr, "1", 12, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-233.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-233.js new file mode 100644 index 0000000000..2149b35bf5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-233.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-233", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-233.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, 'P' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'P' is false, test TypeError is thrown if the [[Writable]] attribute value of 'P' is false and the [[Writable]] field of 'desc' is true. (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "1", { + configurable: false, + writable: false + + }); + + try { + Object.defineProperties(arr, { + "1": { + writable: true + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", undefined, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-234.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-234.js new file mode 100644 index 0000000000..ace5701b3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-234.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-234", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-234.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index property, 'P' is data property and 'desc' is data descriptor, and the [[Configurable]] attribute value of 'P' is false, test TypeError is thrown if the [[Writable]] attribute value of 'P' is false, and the type of the [[Value]] field of 'desc' is different from the type of the [[Value]] attribute value of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "1", { + value: 3, + configurable: false, + writable: false + }); + + try { + + Object.defineProperties(arr, { + "1": { + value: "abc" + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-235.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-235.js new file mode 100644 index 0000000000..14790a4a61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-235.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-235", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-235.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property with [[Configurable]], [[Writable]] false, 'desc' is data descriptor, [[Value]] field of 'desc' is +0, and the [[Value]] attribute value of 'P' is -0 (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "1", { + value: +0 + }); + + try { + Object.defineProperties(arr, { + "1": { + value: -0 + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", +0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-236.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-236.js new file mode 100644 index 0000000000..51e2511b87 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-236.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-236", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-236.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property with [[Configurable]], [[Writable]] false, 'desc' is data descriptor, [[Value]] field of 'desc' is -0, and the [[Value]] attribute value of 'P' is +0 (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "1", { + value: -0 + }); + + try { + Object.defineProperties(arr, { + "1": { + value: +0 + } + }); + + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", -0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-237.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-237.js new file mode 100644 index 0000000000..520b470a04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-237.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-237", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-237.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property with [[Configurable]], [[Writable]] false, 'desc' is data descriptor, [[Value]] field of 'desc' and the [[Value]] attribute value of 'P' are two numbers with different vaule (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "1", { + value: 12 + }); + + try { + Object.defineProperties(arr, { + "1": { + value: 36 + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 12, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-238.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-238.js new file mode 100644 index 0000000000..0637259267 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-238.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-238", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-238.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property with [[Configurable]], [[Writable]] false, 'desc' is data descriptor, [[Value]] field of 'desc' and the [[Value]] attribute value of 'P' are two strings with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "1", { + value: "abcd" + }); + + try { + Object.defineProperties(arr, { + "1": { + value: "efgh" + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", "abcd", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-239.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-239.js new file mode 100644 index 0000000000..cc2d5cd5a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-239.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-239", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-239.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property with [[Configurable]], [[Writable]] false, 'desc' is data descriptor, [[Value]] field of 'desc' and the [[Value]] attribute value of 'P' are two booleans with different values (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "1", { + value: true + }); + + try { + Object.defineProperties(arr, { + "1": { + value: false + } + }); + + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", true, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-24.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-24.js new file mode 100644 index 0000000000..838051453b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-24.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-24", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-24.js", + + description: "Object.defineProperties - 'O' is the global object which implements its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 ) ", + + test: function testcase() { + + try { + Object.defineProperty(fnGlobalObject(), "prop", { + value: 11, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperties(fnGlobalObject(), { + prop: { + value: 12 + } + }); + return dataPropertyAttributesAreCorrect(fnGlobalObject(), "prop", 12, true, true, true); + } finally { + delete fnGlobalObject().prop; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-240.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-240.js new file mode 100644 index 0000000000..097292c131 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-240.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-240", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-240.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property with [[Configurable]], [[Writable]] false, 'desc' is data descriptor, [[Value]] field of 'desc' and the [[Value]] attribute value of 'P' are two objects which refer to the different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + var obj1 = { value: 12 }; + var obj2 = { value: 36 }; + + Object.defineProperty(arr, "1", { + value: obj1 + }); + + try { + Object.defineProperties(arr, { + "1": { + value: obj2 + } + }); + + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", obj1, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-241.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-241.js new file mode 100644 index 0000000000..6d80e909b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-241.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-241", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-241.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property with [[Configurable]] false, 'desc' is accessor descriptor, the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' and the [[Set]] attribute value of 'P' are two objects which refer to the different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "1", { + set: set_fun + }); + + try { + Object.defineProperties(arr, { + "1": { + set: function () { } + } + }); + + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-242.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-242.js new file mode 100644 index 0000000000..40c98070c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-242.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-242", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-242.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property with [[Configurable]] false, 'desc' is accessor descriptor, the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' is an object and the [[Set]] attribute value of 'P' is undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "1", { + set: set_fun + }); + + try { + Object.defineProperties(arr, { + "1": { + set: undefined + } + }); + + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-243.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-243.js new file mode 100644 index 0000000000..f25d1bd7f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-243.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-243", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-243.js", + + description: "Object.defineProperties - TypeError is not thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property with [[Configurable]] false, 'desc' is accessor descriptor, the [[Set]] field of 'desc' is present, and the [[Set]] field of 'desc' and the [[Set]] attribute value of 'P' are undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "1", { + set: undefined + }); + + Object.defineProperties(arr, { + "1": { + set: undefined + } + }); + + return accessorPropertyAttributesAreCorrect(arr, "1", undefined, undefined, undefined, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-244.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-244.js new file mode 100644 index 0000000000..a5911a6e77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-244.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-244", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-244.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property with [[Configurable]] false, 'desc' is accessor descriptor, the [[Get]] field of 'desc' is present, and the [[Get]] field of 'desc' and the [[Get]] attribute value of 'P' are two objects which refer to the different objects (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + function get_fun() { + return 36; + } + Object.defineProperty(arr, "1", { + get: get_fun + }); + + try { + Object.defineProperties(arr, { + "1": { + get: function () { + return 12; + } + } + }); + + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", get_fun, undefined, undefined, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-245.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-245.js new file mode 100644 index 0000000000..f9e3ae8fd5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-245.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-245", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-245.js", + + description: "Object.defineProperties - TypeError is thrown if 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property with [[Configurable]] false, 'desc' is accessor descriptor, the [[Get]] field of 'desc' is present, and the [[Get]] field of 'desc' is an object and the [[Get]] attribute value of 'P' is undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + function get_fun() { + return 36; + } + Object.defineProperty(arr, "1", { + get: get_fun + }); + + try { + Object.defineProperties(arr, { + "1": { + get: undefined + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", get_fun, undefined, undefined, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-246.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-246.js new file mode 100644 index 0000000000..2071435810 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-246.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-246", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-246.js", + + description: "Object.defineProperties - TypeError is not thrown if ''O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property with [[Configurable]] false, 'desc' is accessor descriptor, test TypeError is not thrown if the [[Get]] field of 'desc' is present, and the [[Get]] field of 'desc' and the [[Get]] attribute value of 'P' are undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + var arr = []; + + Object.defineProperty(arr, "1", { + get: undefined + }); + + try { + Object.defineProperties(arr, { + "1": { + get: undefined + } + }); + + return accessorPropertyAttributesAreCorrect(arr, "1", undefined, undefined, undefined, false, false); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-247.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-247.js new file mode 100644 index 0000000000..ac4e5ee22d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-247.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-247", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-247.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating the [[Value]] attribute value of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = [12]; + + try { + Object.defineProperties(arr, { + "0": { + value: 36 + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", 36, true, true, true); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-248.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-248.js new file mode 100644 index 0000000000..e160e0a2e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-248.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-248", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-248.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property and 'desc' is data descriptor, test setting the [[Value]] attribute value of 'P' as undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = [12]; + + try { + Object.defineProperties(arr, { + "0": { + value: undefined + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", undefined, true, true, true); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-249.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-249.js new file mode 100644 index 0000000000..9dde3d2bdf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-249.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-249", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-249.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property and 'desc' is data descriptor, test setting the [[Value]] attribute value of 'P' from undefined to normal value (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = [undefined]; + + try { + Object.defineProperties(arr, { + "0": { + value: 12 + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", 12, true, true, true); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-25.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-25.js new file mode 100644 index 0000000000..dd37eda6cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-25.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-25", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-25.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test TypeError is thrown when 'O' is not extensible (8.12.9 step 3)", + + test: function testcase() { + var obj = {}; + Object.preventExtensions(obj); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && !obj.hasOwnProperty("prop"); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-250.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-250.js new file mode 100644 index 0000000000..4d48f8bdd1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-250.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-250", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-250.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating the [[Writable]] attribute value of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = [100]; + + try { + Object.defineProperties(arr, { + "0": { + writable: false + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", 100, false, true, true); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-251.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-251.js new file mode 100644 index 0000000000..075aa75ffa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-251.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-251", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-251.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating the [[Enumerable]] attribute value of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = [12]; + + try { + Object.defineProperties(arr, { + "0": { + enumerable: false + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", 12, true, false, true); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-252.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-252.js new file mode 100644 index 0000000000..c655fddd18 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-252.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-252", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-252.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating the [[Configurable]] attribute value of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = [12]; + + try { + Object.defineProperties(arr, { + "0": { + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", 12, true, true, false); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-253.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-253.js new file mode 100644 index 0000000000..826e7c2232 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-253.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-253", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-253.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is data property and 'desc' is data descriptor, test updating multiple attribute values of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = [12]; + + try { + Object.defineProperties(arr, { + "0": { + value: 36, + writable: false, + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(arr, "0", 36, false, true, false); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-254.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-254.js new file mode 100644 index 0000000000..a29ac119b6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-254.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-254", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-254.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Get]] attribute value of 'P' with different getter function (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + function get_fun() { + return 36; + } + + Object.defineProperty(arr, "0", { + get: function () { + return 12; + }, + configurable: true + }); + + Object.defineProperties(arr, { + "0": { + get: get_fun + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-255.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-255.js new file mode 100644 index 0000000000..eb50acd99e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-255.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-255", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-255.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test setting the [[Get]] attribute value of 'P' as undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "0", { + get: function () { + return 12; + }, + configurable: true + }); + + Object.defineProperties(arr, { + "0": { + get: undefined + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", undefined, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-256.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-256.js new file mode 100644 index 0000000000..c9868afab0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-256.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-256", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-256.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Get]] attribute value of 'P' from undefined to function (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + function get_fun() { + return 36; + } + + Object.defineProperty(arr, "0", { + get: undefined, + configurable: true + }); + + Object.defineProperties(arr, { + "0": { + get: get_fun + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-257.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-257.js new file mode 100644 index 0000000000..68039c0379 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-257.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-257", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-257.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Set]] attribute value of 'P' with different getter function (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + set: set_fun + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-258.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-258.js new file mode 100644 index 0000000000..2e20b9d761 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-258.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-258", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-258.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test setting the [[Set]] attribute value of 'P' as undefined (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + Object.defineProperties(arr, { + "0": { + set: undefined + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", undefined, undefined, undefined, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-259.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-259.js new file mode 100644 index 0000000000..7cde7c18bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-259.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: "15.2.3.7-6-a-259", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-259.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Set]] attribute value of 'P' from undefined to function (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "0", { + set: undefined, + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + set: set_fun + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-26.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-26.js new file mode 100644 index 0000000000..1d6cb7a443 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-26.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-26", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-26.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test 'P' is defined as data property when 'desc' is generic descriptor (8.12.9 step 4.a)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + prop: { + configurable: true, + enumerable: true + } + }); + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc.hasOwnProperty("value") && typeof desc.value === "undefined" && + desc.hasOwnProperty("writable") && desc.writable === false && + desc.hasOwnProperty("configurable") && desc.configurable === true && + desc.hasOwnProperty("enumerable") && desc.enumerable === true && + !desc.hasOwnProperty("get") && !desc.hasOwnProperty("set"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-260.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-260.js new file mode 100644 index 0000000000..a293f21129 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-260.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-260", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-260.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Enumerable]] attribute value of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "0", { + set: set_fun, + enumerable: true, + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + enumerable: false + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-261.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-261.js new file mode 100644 index 0000000000..6146335d44 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-261.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: "15.2.3.7-6-a-261", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-261.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating the [[Configurable]] attribute value of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "0", { + set: set_fun, + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + configurable: false + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, false); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-262.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-262.js new file mode 100644 index 0000000000..1dcc0e25a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-262.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.7-6-a-262", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-262.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property that already exists on 'O' is accessor property and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (15.4.5.1 step 4.c)", + + test: function testcase() { + + var arr = []; + + function get_fun() { + return 36; + } + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "0", { + get: function () { + return 12; + }, + set: set_fun, + enumerable: true, + configurable: true + }); + + try { + Object.defineProperties(arr, { + "0": { + get: get_fun, + enumerable: false, + configurable: false + } + }); + return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, set_fun, "setVerifyHelpProp", false, false); + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-263.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-263.js new file mode 100644 index 0000000000..e0d60d34ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-263.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-263", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-263.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, test the length property of 'O' is not changed if ToUint32('P') is less than value of the length property in 'O' (15.4.5.1 step 4.e)", + + test: function testcase() { + + var arr = []; + + arr.length = 3; // default value of length: writable: true, configurable: false, enumerable: false + + Object.defineProperties(arr, { + "1": { + value: 26 + } + }); + return arr.length === 3 && arr[1] === 26; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-264.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-264.js new file mode 100644 index 0000000000..19394981f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-264.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-264", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-264.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, test the length property of 'O' is set as ToUint32('P') + 1 if ToUint32('P') equals to value of the length property in 'O' (15.4.5.1 step 4.e.ii)", + + test: function testcase() { + + var arr = []; + + arr.length = 3; // default value of length: writable: true, configurable: false, enumerable: false + + Object.defineProperties(arr, { + "3": { + value: 26 + } + }); + return arr.length === 4 && arr[3] === 26; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-265.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-265.js new file mode 100644 index 0000000000..8b8ce92eb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-265.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: "15.2.3.7-6-a-265", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-265.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is an array index named property, test the length property of 'O' is set as ToUint32('P') + 1 if ToUint32('P') is greater than value of the length property in 'O' (15.4.5.1 step 4.e.ii)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + "5": { + value: 26 + } + }); + return arr.length === 6 && arr[5] === 26; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-266.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-266.js new file mode 100644 index 0000000000..9129e13aa6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-266.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-266", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-266.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic property that won't exist on 'O', and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + Object.defineProperties(arr, { + "property": { + value: 12, + writable: true, + enumerable: true, + configurable: true + } + }); + return dataPropertyAttributesAreCorrect(arr, "property", 12, true, true, true) && arr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-267.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-267.js new file mode 100644 index 0000000000..56b46f9864 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-267.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-267", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-267.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic property, and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + function get_fun() { + return 12; + } + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + + Object.defineProperties(arr, { + "property": { + get: get_fun, + set: set_fun, + enumerable: true, + configurable: true + } + }); + return accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "setVerifyHelpProp", true, true) && + arr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-268.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-268.js new file mode 100644 index 0000000000..dfce9ae654 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-268.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-268", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-268.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (15.4.5.1 step 5)", + + test: function testcase() { + var arr = []; + function get_fun() { + return 12; + } + function set_fun(value) { + arr.verifySetFun = value; + } + Object.defineProperty(arr, "property", { + get: function () { + return 36; + }, + enumerable: true, + configurable: true + }); + + Object.defineProperties(arr, { + "property": { + get: get_fun, + set: set_fun, + enumerable: false + } + }); + return accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "verifySetFun", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-269.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-269.js new file mode 100644 index 0000000000..3d0726597b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-269.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-269", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-269.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + arr.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(arr, { + "property": { + writable: false, + enumerable: false, + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false) && arr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-27.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-27.js new file mode 100644 index 0000000000..8d2d3bdb65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-27.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-27", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-27.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test [[Value]] of 'P' is set as undefined value if absent in data descriptor 'desc' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + prop: { + writable: true + } + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc.hasOwnProperty("value") && typeof desc.value === "undefined" && + desc.hasOwnProperty("writable") && desc.writable === true && + desc.hasOwnProperty("configurable") && desc.configurable === false && + desc.hasOwnProperty("enumerable") && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-270.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-270.js new file mode 100644 index 0000000000..a52afdcfbe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-270.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-270", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-270.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is defined as unwritable and non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "property", { + value: 12 + }); + + try { + Object.defineProperties(arr, { + "property": { + value: 36 + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-271.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-271.js new file mode 100644 index 0000000000..ae6a87d1f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-271.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-271", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-271.js", + + description: "Object.defineProperties -'O' is an Array, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "property", { + writable: false + }); + + try { + Object.defineProperties(arr, { + "property": { + writable: true + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", undefined, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-272.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-272.js new file mode 100644 index 0000000000..2367e9692c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-272.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-272", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-272.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "property", { + value: 12, + enumerable: false + }); + + try { + Object.defineProperties(arr, { + "property": { + enumerable: true + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-273.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-273.js new file mode 100644 index 0000000000..0fc5c8002d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-273.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-273", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-273.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "property", { + value: 12 + }); + + try { + Object.defineProperties(arr, { + "property": { + configurable: true + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-274.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-274.js new file mode 100644 index 0000000000..e9b031b773 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-274.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-274", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-274.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + var arr = []; + + function get_fun() { + return 37; + } + function set_fun(value) { + arr.verifySetFun = value; + } + Object.defineProperty(arr, "property", { + get: get_fun, + set: set_fun + }); + + try { + Object.defineProperties(arr, { + "property": { + get: function () { + return 36; + } + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && + accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "verifySetFun", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-275.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-275.js new file mode 100644 index 0000000000..571131d9ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-275.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-275", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-275.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "property", { + set: set_fun + }); + + try { + Object.defineProperties(arr, { + "property": { + set: function () { } + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-276.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-276.js new file mode 100644 index 0000000000..842a8e4124 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-276.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: "15.2.3.7-6-a-276", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-276.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "property", { + set: set_fun, + enumerable: false + }); + + try { + Object.defineProperties(arr, { + "property": { + enumerable: true + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-277.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-277.js new file mode 100644 index 0000000000..cec1763b77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-277.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: "15.2.3.7-6-a-277", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-277.js", + + description: "Object.defineProperties - 'O' is an Array, 'P' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is defined as non-configurable (15.4.5.1 step 5)", + + test: function testcase() { + + var arr = []; + + function set_fun(value) { + arr.setVerifyHelpProp = value; + } + Object.defineProperty(arr, "property", { + set: set_fun, + configurable: false + }); + + try { + Object.defineProperties(arr, { + "property": { + configurable: true + } + }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-278.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-278.js new file mode 100644 index 0000000000..6383cd4645 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-278.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-278", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-278.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own property which is ever defined in both [[ParameterMap]] of 'O' and 'O', and is deleted afterwards, and 'desc' is data descriptor, test 'P' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + delete arg[0]; + + Object.defineProperties(arg, { + "0": { + value: 10, + writable: true, + enumerable: true, + configurable: true + } + }); + + return dataPropertyAttributesAreCorrect(arg, "0", 10, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-279.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-279.js new file mode 100644 index 0000000000..4769f1fe2e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-279.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-6-a-279", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-279.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own property which is ever defined in both [[ParameterMap]] of 'O' and 'O', and is deleted afterwards, and 'desc' is accessor descriptor, test 'P' is redefined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + delete arg[0]; + + function get_func() { + return 10; + } + function set_func(value) { + arg.setVerifyHelpProp = value; + } + + Object.defineProperties(arg, { + "0": { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + } + }); + + return accessorPropertyAttributesAreCorrect(arg, "0", get_func, set_func, "setVerifyHelpProp", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-28.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-28.js new file mode 100644 index 0000000000..ac596e7540 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-28.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.7-6-a-28", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-28.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test [[Writable]] of 'P' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + prop: { + value: 1001 + } + }); + obj.prop = 1002; + return obj.hasOwnProperty("prop") && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-280.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-280.js new file mode 100644 index 0000000000..47f3f44790 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-280.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.7-6-a-280", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-280.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + } (0, 1, 2)); + + function get_func1() { + return 10; + } + + Object.defineProperty(arg, "0", { + get: get_func1, + enumerable: true, + configurable: true + }); + + function get_func2() { + return 20; + } + + Object.defineProperties(arg, { + "0": { + get: get_func2, + enumerable: false, + configurable: false + } + }); + + var desc = Object.getOwnPropertyDescriptor(arg, "0"); + return desc.get === get_func2 && typeof desc.set === "undefined" && + desc.configurable === false && desc.enumerable === false; + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-281.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-281.js new file mode 100644 index 0000000000..f9bb384086 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-281.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-281", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-281.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + Object.defineProperties(arg, { + "0": { + value: 20, + writable: false, + enumerable: false, + configurable: false + } + }); + + return dataPropertyAttributesAreCorrect(arg, "0", 20, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-282.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-282.js new file mode 100644 index 0000000000..dde7ff1745 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-282.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-282", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-282.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' whose writable and configurable attributes are false (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + Object.defineProperty(arg, "0", { + value: 0, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + value: 10 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-283.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-283.js new file mode 100644 index 0000000000..5465aa09e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-283.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-283", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-283.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + writable: true + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-284.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-284.js new file mode 100644 index 0000000000..74e655cd6b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-284.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-284", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-284.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + enumerable: false + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-285.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-285.js new file mode 100644 index 0000000000..79e711125c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-285.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-285", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-285.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own data property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + configurable: true + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-286.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-286.js new file mode 100644 index 0000000000..c0563f7caf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-286.js @@ -0,0 +1,68 @@ +/// 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: "15.2.3.7-6-a-286", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-286.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + } (0, 1, 2)); + + function get_func1() { + return 0; + } + + Object.defineProperty(arg, "0", { + get: get_func1, + enumerable: false, + configurable: false + }); + + function get_func2() { + return 10; + } + try { + Object.defineProperties(arg, { + "0": { + get: get_func2 + } + }); + + return false; + } catch (e) { + var desc = Object.getOwnPropertyDescriptor(arg, "0"); + return e instanceof TypeError && desc.get === get_func1 && typeof desc.set === "undefined" && + desc.enumerable === false && desc.configurable === false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-287.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-287.js new file mode 100644 index 0000000000..47074e7ded --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-287.js @@ -0,0 +1,69 @@ +/// 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: "15.2.3.7-6-a-287", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-287.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + function get_func() { + return 0; + } + + Object.defineProperty(arg, "0", { + get: get_func, + set: undefined, + enumerable: false, + configurable: false + }); + + function set_func(value) { + arg.setVerifyHelpProp = value; + } + try { + Object.defineProperties(arg, { + "0": { + set: set_func + } + }); + + return false; + } catch (e) { + var desc = Object.getOwnPropertyDescriptor(arg, "0"); + return e instanceof TypeError && desc.get === get_func && typeof desc.set === "undefined" && + desc.enumerable === false && desc.configurable === false; + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-288.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-288.js new file mode 100644 index 0000000000..7f331bb437 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-288.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-6-a-288", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-288.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + function get_func() { + return 0; + } + + Object.defineProperty(arg, "0", { + get: get_func, + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + enumerable: false + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-289.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-289.js new file mode 100644 index 0000000000..6489b88db7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-289.js @@ -0,0 +1,63 @@ +/// 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: "15.2.3.7-6-a-289", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-289.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is own accessor property of 'O' which is also defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is defined as non-configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun(a, b, c) { + arg = arguments; + }(0, 1, 2)); + + function get_func() { + return 0; + } + + Object.defineProperty(arg, "0", { + get: get_func, + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + configurable: true + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-29.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-29.js new file mode 100644 index 0000000000..f03d836b72 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-29.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-29", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-29.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test [[Enumerable]] of 'P' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + prop: { value: 1001} + }); + + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + if (prop === "prop") { + return false; + } + } + } + return true; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-290.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-290.js new file mode 100644 index 0000000000..0aec0b0cb8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-290.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-290", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-290.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }(0, 1, 2)); + + delete arg[0]; + + Object.defineProperties(arg, { + "0": { + value: 10, + writable: false, + enumerable: false, + configurable: false + } + }); + + return dataPropertyAttributesAreCorrect(arg, "0", 10, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-291.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-291.js new file mode 100644 index 0000000000..3977ebe517 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-291.js @@ -0,0 +1,61 @@ +/// 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: "15.2.3.7-6-a-291", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-291.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }(0, 1, 2)); + + delete arg[0]; + + function get_func() { + return 10; + } + function set_func(value) { + arg.setVerifyHelpProp = value; + } + + Object.defineProperties(arg, { + "0": { + get: get_func, + set: set_func, + enumerable: false, + configurable: false + } + }); + + return accessorPropertyAttributesAreCorrect(arg, "0", get_func, set_func, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-292.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-292.js new file mode 100644 index 0000000000..c1096e77ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-292.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.7-6-a-292", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-292.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }(0, 1, 2)); + + function get_func1() { + return 10; + } + + Object.defineProperty(arg, "0", { + get: get_func1, + enumerable: true, + configurable: true + }); + + function get_func2() { + return 20; + } + + Object.defineProperties(arg, { + "0": { + get: get_func2, + enumerable: false, + configurable: false + } + }); + + return accessorPropertyAttributesAreCorrect(arg, "0", get_func2, undefined, undefined, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-293.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-293.js new file mode 100644 index 0000000000..2f505e53c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-293.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-293", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-293.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named data property of 'O' but not defined in [[ParameterMap]] of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }(0, 1, 2)); + + Object.defineProperties(arg, { + "0": { + value: 20, + writable: false, + enumerable: false, + configurable: false + } + }); + + return dataPropertyAttributesAreCorrect(arg, "0", 20, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-294.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-294.js new file mode 100644 index 0000000000..37dc958eae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-294.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-294", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-294.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named data property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }()); + + Object.defineProperty(arg, "0", { + value: 0, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + value: 10 + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-295.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-295.js new file mode 100644 index 0000000000..b67e302071 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-295.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-295", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-295.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named data property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }()); + + Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + writable: true + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-296.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-296.js new file mode 100644 index 0000000000..417f528db0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-296.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-296", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-296.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named data property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }()); + + Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + enumerable: false + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-297.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-297.js new file mode 100644 index 0000000000..d3be7b3b07 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-297.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-297", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-297.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named data property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }()); + + Object.defineProperty(arg, "0", { + value: 0, + writable: false, + enumerable: false, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + configurable: true + } + }); + + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-298.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-298.js new file mode 100644 index 0000000000..9298e66542 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-298.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.7-6-a-298", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-298.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }()); + + function get_func1() { + return 0; + } + + Object.defineProperty(arg, "0", { + get: get_func1, + enumerable: false, + configurable: false + }); + + function get_func2() { + return 10; + } + try { + Object.defineProperties(arg, { + "0": { + get: get_func2 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func1, undefined, undefined, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-299.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-299.js new file mode 100644 index 0000000000..c4784a7c2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-299.js @@ -0,0 +1,66 @@ +/// 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: "15.2.3.7-6-a-299", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-299.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }()); + + function get_func() { + return 0; + } + + Object.defineProperty(arg, "0", { + get: get_func, + set: undefined, + enumerable: false, + configurable: false + }); + + function set_func(value) { + arg.setVerifyHelpProp = value; + } + try { + Object.defineProperties(arg, { + "0": { + set: set_func + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-3.js new file mode 100644 index 0000000000..0118df343b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-3.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-3.js", + + description: "Object.defineProperties - 'P' is own data property that overrides an inherited data property (8.12.9 step 1 ) ", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + value: 11, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + value: 12, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 13, + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-30.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-30.js new file mode 100644 index 0000000000..0f9f4d2b95 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-30.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: "15.2.3.7-6-a-30", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-30.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test [[Configurable]] of 'P' is set as false value if absent in data descriptor 'desc' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + + Object.defineProperties(obj, { + prop: { value: 1001 } + }); + delete obj.prop; + return obj.hasOwnProperty("prop") && obj.prop === 1001; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-300.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-300.js new file mode 100644 index 0000000000..19713048c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-300.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-300", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-300.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }()); + + function get_func() { + return 0; + } + + Object.defineProperty(arg, "0", { + get: get_func, + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + enumerable: false + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-301.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-301.js new file mode 100644 index 0000000000..efcf44ac4e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-301.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-301", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-301.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is an array index named accessor property of 'O' but not defined in [[ParameterMap]] of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }()); + + function get_func() { + return 0; + } + + Object.defineProperty(arg, "0", { + get: get_func, + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "0": { + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-302.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-302.js new file mode 100644 index 0000000000..2bf1f16421 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-302.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-302", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-302.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic property, and 'desc' is data descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + Object.defineProperties(arg, { + "genericProperty": { + value: 1001, + writable: true, + enumerable: true, + configurable: true + } + }); + + return dataPropertyAttributesAreCorrect(arg, "genericProperty", 1001, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-303.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-303.js new file mode 100644 index 0000000000..bd38fe38f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-303.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-303", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-303.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic property, and 'desc' is accessor descriptor, test 'P' is defined in 'O' with all correct attribute values (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + function getFun() { + return "getFunctionString"; + } + function setFun(value) { + arg.testGetFunction = value; + } + Object.defineProperties(arg, { + "genericProperty": { + get: getFun, + set: setFun, + enumerable: true, + configurable: true + } + }); + + return accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "testGetFunction", true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-304.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-304.js new file mode 100644 index 0000000000..6ae176cd1a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-304.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.7-6-a-304", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-304.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own accessor property of 'O', and 'desc' is accessor descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + Object.defineProperty(arg, "genericProperty", { + get: function () { + return 1001; + }, + set: function (value) { + arg.testGetFunction1 = value; + }, + enumerable: true, + configurable: true + }); + + function getFun() { + return "getFunctionString"; + } + function setFun(value) { + arg.testGetFunction = value; + } + Object.defineProperties(arg, { + "genericProperty": { + get: getFun, + set: setFun, + enumerable: false, + configurable: false + } + }); + + return accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "testGetFunction", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-305.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-305.js new file mode 100644 index 0000000000..c0bac0d894 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-305.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-305", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-305.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own data property of 'O', and 'desc' is data descriptor, test updating multiple attribute values of 'P' (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + Object.defineProperty(arg, "genericProperty", { + value: 1001, + writable: true, + enumerable: true, + configurable: true + }); + + Object.defineProperties(arg, { + "genericProperty": { + value: 1002, + enumerable: false, + configurable: false + } + }); + + return dataPropertyAttributesAreCorrect(arg, "genericProperty", 1002, true, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-306.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-306.js new file mode 100644 index 0000000000..2f7872e0db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-306.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-306", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-306.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Value]] attribute value of 'P' which is not writable and not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + Object.defineProperty(arg, "genericProperty", { + value: 1001, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "genericProperty": { + value: 1002 + } + }); + + return false; + } catch (ex) { + return ex instanceof TypeError && + dataPropertyAttributesAreCorrect(arg, "genericProperty", 1001, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-307.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-307.js new file mode 100644 index 0000000000..ae7d19f26d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-307.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: "15.2.3.7-6-a-307", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-307.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Writable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + Object.defineProperty(arg, "genericProperty", { + writable: false, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "genericProperty": { + writable: true + } + }); + + return false; + } catch (ex) { + return ex instanceof TypeError && + dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-308.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-308.js new file mode 100644 index 0000000000..9db9aac729 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-308.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: "15.2.3.7-6-a-308", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-308.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + Object.defineProperty(arg, "genericProperty", { + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "genericProperty": { + enumerable: false + } + }); + + return false; + } catch (ex) { + return ex instanceof TypeError && + dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-309.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-309.js new file mode 100644 index 0000000000..c3497a83d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-309.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-309", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-309.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own data property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + Object.defineProperty(arg, "genericProperty", { + configurable: false + }); + + try { + Object.defineProperties(arg, { + "genericProperty": { + configurable: true + } + }); + + return false; + } catch (ex) { + return ex instanceof TypeError && + dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-31.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-31.js new file mode 100644 index 0000000000..d6f77a42f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-31.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-31", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-31.js", + + description: "Object.defineProperties - 'desc' is data descriptor, test setting all attribute values of 'P' (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { + prop: { + value: 1002, + writable: false, + enumerable: false, + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "prop", 1002, false, false, false); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-310.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-310.js new file mode 100644 index 0000000000..d0971bc498 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-310.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.7-6-a-310", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-310.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Get]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + } (1, 2, 3)); + + function getFun() { + return "genericPropertyString"; + } + function setFun(value) { + arg.verifySetFun = value; + } + Object.defineProperty(arg, "genericProperty", { + get: getFun, + set: setFun, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "genericProperty": { + get: function () { + return "overideGenericPropertyString"; + } + } + }); + + return false; + } catch (ex) { + return ex instanceof TypeError && + accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "verifySetFun", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-311.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-311.js new file mode 100644 index 0000000000..76d92e13c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-311.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.7-6-a-311", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-311.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Set]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + function setFun(value) { + arg.genericPropertyString = value; + } + Object.defineProperty(arg, "genericProperty", { + set: setFun, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "genericProperty": { + set: function (value) { + arg.genericPropertyString1 = value; + } + } + }); + + return false; + } catch (ex) { + return ex instanceof TypeError && + accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-312.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-312.js new file mode 100644 index 0000000000..6195a37cde --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-312.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-312", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-312.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Enumerable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + function setFun(value) { + arg.genericPropertyString = value; + } + Object.defineProperty(arg, "genericProperty", { + set: setFun, + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "genericProperty": { + enumerable: false + } + }); + + return false; + } catch (ex) { + return ex instanceof TypeError && + accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-313.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-313.js new file mode 100644 index 0000000000..82d265e00c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-313.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.7-6-a-313", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-313.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'P' is generic own accessor property of 'O', test TypeError is thrown when updating the [[Configurable]] attribute value of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step 4)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + + function setFun(value) { + arg.genericPropertyString = value; + } + Object.defineProperty(arg, "genericProperty", { + set: setFun, + configurable: false + }); + + try { + Object.defineProperties(arg, { + "genericProperty": { + configurable: true + } + }); + + return false; + } catch (ex) { + return ex instanceof TypeError && + accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-314.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-314.js new file mode 100644 index 0000000000..45085e6cf7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-314.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-314", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-314.js", + + description: "Object.defineProperties - 'O' is an Arguments object, 'name' is own property of [[ParameterMap]] of 'O', test 'name' is deleted if 'name' is configurable and 'desc' is accessor descriptor (10.6 [[DefineOwnProperty]] step 5.a.i)", + + test: function testcase() { + var arg = (function () { + return arguments; + }(1, 2, 3)); + var accessed = false; + + Object.defineProperties(arg, { + "0": { + get: function () { + accessed = true; + return 12; + } + } + }); + + return arg[0] === 12 && accessed; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-32.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-32.js new file mode 100644 index 0000000000..4a55f6dcbb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-32.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-32", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-32.js", + + description: "Object.defineProperties - 'desc' is generic descriptor without any attribute, test 'P' is defined in 'obj' with all default attribute values (8.12.9 step 4.a.i)", + + test: function testcase() { + var obj = {}; + + Object.defineProperties(obj, { prop: {} }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + + return desc.hasOwnProperty("value") && typeof desc.value === "undefined" && + desc.hasOwnProperty("writable") && desc.writable === false && + desc.hasOwnProperty("configurable") && desc.configurable === false && + desc.hasOwnProperty("enumerable") && desc.enumerable === false && + !desc.hasOwnProperty("get") && !desc.hasOwnProperty("set"); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-33.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-33.js new file mode 100644 index 0000000000..3cc61f2ed6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-33.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-33", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-33.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test [[Get]] of 'P' is set as undefined value if absent in accessor descriptor 'desc' (8.12.9 step 4.b)", + + test: function testcase() { + var obj = {}; + var setFun = function (value) { + obj.setVerifyHelpProp = value; + }; + + Object.defineProperties(obj, { + prop: { + set: setFun, + enumerable: true, + configurable: true + } + }); + return accessorPropertyAttributesAreCorrect(obj, "prop", undefined, setFun, "setVerifyHelpProp", true, true); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-34.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-34.js new file mode 100644 index 0000000000..7e409777d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-34.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-34", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-34.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test [[Set]] of 'P' is set as undefined value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i)", + + test: function testcase() { + var obj = {}; + var getFunc = function () { + return 10; + }; + + Object.defineProperties(obj, { + prop: { + get: getFunc, + enumerable: true, + configurable: true + } + }); + + var desc = Object.getOwnPropertyDescriptor(obj, "prop"); + return obj.hasOwnProperty("prop") && typeof (desc.set) === "undefined"; + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-35.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-35.js new file mode 100644 index 0000000000..8c499af7d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-35.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-35", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-35.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test [[Enumerable]] of 'P' is set as false value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i)", + + test: function testcase() { + var obj = {}; + var getFun = function () { + return 10; + }; + var setFun = function (value) { + obj.setVerifyHelpProp = value; + }; + + Object.defineProperties(obj, { + prop: { + set: setFun, + get: getFun, + configurable: true + } + }); + return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", false, true); + + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-36.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-36.js new file mode 100644 index 0000000000..afe946d245 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-36.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-36", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-36.js", + + description: "Object.defineProperties - 'P' doesn't exist in 'O', test [[Configurable]] of 'P' is set as false value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i)", + + test: function testcase() { + var obj = {}; + var getFun = function () { + return 10; + }; + var setFun = function (value) { + obj.setVerifyHelpProp = value; + }; + + Object.defineProperties(obj, { + prop: { + set: setFun, + get: getFun, + enumerable: true + } + }); + return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", true, false); + + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-37.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-37.js new file mode 100644 index 0000000000..d885005025 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-37.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-37", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-37.js", + + description: "Object.defineProperties - 'desc' is accessor descriptor, test setting all attribute values of 'P' (8.12.9 step 4.b.i)", + + test: function testcase() { + var obj = {}; + var getFun = function () { + return 10; + }; + var setFun = function (value) { + obj.setVerifyHelpProp = value; + }; + + Object.defineProperties(obj, { + prop: { + get: getFun, + set: setFun, + enumerable: false, + configurable: false + } + }); + return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", false, false); + + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-38-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-38-1.js new file mode 100644 index 0000000000..17c153bd0a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-38-1.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-38-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-38-1.js", + + description: "Object.defineProperties - 'P' exists in 'O' is an accessor property, test 'P' makes no change if 'desc' is generic descriptor without any attribute (8.12.9 step 5)", + + test: function testcase() { + + var obj = {}; + var getFunc = function () { + return 12; + }; + Object.defineProperties(obj, { + foo: { + get: getFunc, + enumerable: true, + configurable: true + } + }); + + Object.defineProperties(obj, { foo: {} }); + + return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, undefined, undefined, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-38.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-38.js new file mode 100644 index 0000000000..267511ae97 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-38.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.7-6-a-38", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-38.js", + + description: "Object.defineProperties - 'P' exists in 'O', test 'P' makes no change if 'desc' is generic descriptor without any attribute (8.12.9 step 5)", + + test: function testcase() { + + var obj = {}; + obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(obj, { foo: {} }); + return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-39.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-39.js new file mode 100644 index 0000000000..4770024ede --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-39.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-39", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-39.js", + + description: "Object.defineProperties - 'P' is data descriptor and every fields in 'desc' is the same with 'P' (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(obj, { + foo: { + value: 101, + enumerable: true, + writable: true, + configurable: true + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 101, true, true, true); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-4.js new file mode 100644 index 0000000000..f08b195beb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-4.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-4.js", + + description: "Object.defineProperties - 'P' is own data property that overrides an inherited accessor property (8.12.9 step 1 ) ", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function () { + return 11; + }, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + value: 12, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 13, + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-40.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-40.js new file mode 100644 index 0000000000..03b0793a7a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-40.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-40", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-40.js", + + description: "Object.defineProperties - 'P' is accessor descriptor and every fields in 'desc' is the same with 'P' (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 0; + } + function set_func(value) { + obj.setVerifyHelpProp = value; + } + var desc = { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }; + + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true); + + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-41.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-41.js new file mode 100644 index 0000000000..d4838f61f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-41.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-41", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-41.js", + + description: "Object.defineProperties - type of desc.value is different from type of P.value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(obj, { + foo: { + value: "102" + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", "102", true, true, true); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-42.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-42.js new file mode 100644 index 0000000000..ba44cd6191 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-42.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-42", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-42.js", + + description: "Object.defineProperties - both desc.value and P.value are undefined (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { value: undefined }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + value: undefined + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-43.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-43.js new file mode 100644 index 0000000000..7af4b3200f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-43.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-43", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-43.js", + + description: "Object.defineProperties - both desc.value and P.value are null (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { value: null }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + value: null + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-44.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-44.js new file mode 100644 index 0000000000..e2b498c328 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-44.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-44", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-44.js", + + description: "Object.defineProperties - both desc.value and P.value are NaN (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { value: NaN }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + value: NaN + } + }); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "foo") { + verifyEnumerable = true; + } + } + + var verifyValue = false; + obj.prop = "overrideData"; + verifyValue = obj.foo !== obj.foo && isNaN(obj.foo); + + var verifyConfigurable = false; + delete obj.foo; + verifyConfigurable = obj.hasOwnProperty("foo"); + + return verifyConfigurable && !verifyEnumerable && verifyValue; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-45.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-45.js new file mode 100644 index 0000000000..2c406bcf1e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-45.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-45", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-45.js", + + description: "Object.defineProperties - desc.value is +0 and P.value is -0 (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { value: -0 }; + Object.defineProperty(obj, "foo", desc); + + try { + Object.defineProperties(obj, { + foo: { + value: +0 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-46.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-46.js new file mode 100644 index 0000000000..5309e50127 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-46.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-46", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-46.js", + + description: "Object.defineProperties - desc.value is -0 and P.value is +0 (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { value: +0 }; + Object.defineProperty(obj, "foo", desc); + + try { + Object.defineProperties(obj, { + foo: { + value: -0 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-47.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-47.js new file mode 100644 index 0000000000..c0699dd5f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-47.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-47", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-47.js", + + description: "Object.defineProperties - desc.value and P.value are two numbers with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { value: 101 }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + value: 101 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 101, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-48.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-48.js new file mode 100644 index 0000000000..fbdaa0be29 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-48.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-48", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-48.js", + + description: "Object.defineProperties - desc.value and P.value are two numbers with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(obj, { + foo: { + value: 102 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 102, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-49.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-49.js new file mode 100644 index 0000000000..e384da2422 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-49.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-49", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-49.js", + + description: "Object.defineProperties - both desc.value and P.value are two strings which have same length and same characters in corresponding positions (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { value: "abcd" }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + value: "abcd" + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-5.js new file mode 100644 index 0000000000..0037cd9629 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-5.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-5.js", + + description: "Object.defineProperties - 'P' is own accessor property (8.12.9 step 1 ) ", + + test: function testcase() { + var obj = {}; + function getFunc() { + return 11; + } + + Object.defineProperty(obj, "prop", { + get: getFunc, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 12, + configurable: true + } + }); + return false; + } catch (e) { + return e instanceof TypeError && accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, undefined, undefined, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-50.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-50.js new file mode 100644 index 0000000000..25a921ba71 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-50.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-50", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-50.js", + + description: "Object.defineProperties - desc.value and P.value are two strings with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(obj, { + foo: { + value: "fghj" + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", "fghj", true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-51.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-51.js new file mode 100644 index 0000000000..ed12153cb4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-51.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-51", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-51.js", + + description: "Object.defineProperties - both desc.value and P.value are boolean values with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { value: true }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + value: true + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", true, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-52.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-52.js new file mode 100644 index 0000000000..428f468ede --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-52.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-52", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-52.js", + + description: "Object.defineProperties - desc.value and P.value are two boolean values with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(obj, { + foo: { + value: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", false, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-53.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-53.js new file mode 100644 index 0000000000..50f8b4f4cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-53.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-53", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-53.js", + + description: "Object.defineProperties - both desc.value and P.value are Ojbects which refer to the same Object (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + var desc = { value: obj1 }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + value: obj1 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-54.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-54.js new file mode 100644 index 0000000000..e1ee26bf36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-54.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-54", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-54.js", + + description: "Object.defineProperties - desc.value and P.value are two Ojbects which refer to the different objects (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true + + var obj2 = { length: 20 }; + + Object.defineProperties(obj, { + foo: { + value: obj2 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", obj2, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-55.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-55.js new file mode 100644 index 0000000000..2f5252a97c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-55.js @@ -0,0 +1,46 @@ +/// 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: "15.2.3.7-6-a-55", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-55.js", + + description: "Object.defineProperties - both desc.writable and P.writable are boolean values with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { writable: false }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + writable: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-56.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-56.js new file mode 100644 index 0000000000..69a5fe4994 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-56.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.7-6-a-56", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-56.js", + + description: "Object.defineProperties - desc.writable and P.writable are two boolean values with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + var desc = { writable: false, configurable: true }; + Object.defineProperty(obj, "foo", desc); + + Object.defineProperties(obj, { + foo: { + writable: true, + configurable: true + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-57.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-57.js new file mode 100644 index 0000000000..2df8711865 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-57.js @@ -0,0 +1,67 @@ +/// 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: "15.2.3.7-6-a-57", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-57.js", + + description: "Object.defineProperties - both desc.[[Get]] and P.[[Get]] are two objects which refer to the same object (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function get_Func() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: get_Func + }); + + Object.defineProperties(obj, { + foo: { + get: get_Func + } + }); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "foo") { + verifyEnumerable = true; + } + } + + var verifyValue = false; + verifyValue = (obj.foo === 10); + + var verifyConfigurable = false; + delete obj.foo; + verifyConfigurable = obj.hasOwnProperty("foo"); + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + return verifyConfigurable && !verifyEnumerable && verifyValue && typeof (desc.set) === "undefined" && desc.get === get_Func; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-58.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-58.js new file mode 100644 index 0000000000..369de69a28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-58.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: "15.2.3.7-6-a-58", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-58.js", + + description: "Object.defineProperties - desc.[[Get]] and P.[[Get]] are two objects which refer to the different objects (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function get_Func1() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: get_Func1, + configurable: true + }); + + function get_Func2() { + return 20; + } + + Object.defineProperties(obj, { + foo: { + get: get_Func2 + } + }); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "foo") { + verifyEnumerable = true; + } + } + + var verifyValue = false; + verifyValue = (obj.foo === 20); + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + var verifyConfigurable = false; + delete obj.foo; + verifyConfigurable = obj.hasOwnProperty("foo"); + + return !verifyConfigurable && !verifyEnumerable && verifyValue && typeof (desc.set) === "undefined" && desc.get === get_Func2; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-59.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-59.js new file mode 100644 index 0000000000..88746eb14c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-59.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-59", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-59.js", + + description: "Object.defineProperties - both desc.[[Set]] and P.[[Set]] are two objects which refer to the same object (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: set_func + }); + + Object.defineProperties(obj, { + foo: { + set: set_func + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-6.js new file mode 100644 index 0000000000..2d8ec7b686 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-6.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-6.js", + + description: "Object.defineProperties - 'P' is inherited accessor property (8.12.9 step 1 ) ", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function () { + return 11; + }, + configurable: false + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + + Object.defineProperties(obj, { + prop: { + get: function () { + return 12; + }, + configurable: true + } + }); + return obj.hasOwnProperty("prop") && obj.prop === 12; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-60.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-60.js new file mode 100644 index 0000000000..49b5bc87c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-60.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-60", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-60.js", + + description: "Object.defineProperties - desc.[[Set]] and P.[[Set]] are two objects which refer to the different objects (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + function set_func1() {} + + Object.defineProperty(obj, "foo", { + set: set_func1, + configurable: true + }); + + function set_func2(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperties(obj, { + foo: { + set: set_func2 + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func2, "setVerifyHelpProp", false, true); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-61.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-61.js new file mode 100644 index 0000000000..e490121c6e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-61.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-61", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-61.js", + + description: "Object.defineProperties - both desc.enumerable and P.enumerable are boolean values with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + enumerable: false + }); + + Object.defineProperties(obj, { + foo: { + enumerable: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-62.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-62.js new file mode 100644 index 0000000000..dcea8f2169 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-62.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-62", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-62.js", + + description: "Object.defineProperties - desc.enumerable and P.enumerable are two boolean values with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + enumerable: false, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + enumerable: true + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-63.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-63.js new file mode 100644 index 0000000000..7daf55a46c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-63.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-63", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-63.js", + + description: "Object.defineProperties - both desc.configurable and P.configurable are boolean values with the same value (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-64.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-64.js new file mode 100644 index 0000000000..aa8b4c8859 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-64.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.7-6-a-64", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-64.js", + + description: "Object.defineProperties - desc.configurable and P.configurable are two boolean values with different values (8.12.9 step 6)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-65.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-65.js new file mode 100644 index 0000000000..9f21b8ed2c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-65.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-65", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-65.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false and desc.configurable is true (8.12.9 step 7.a)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-66-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-66-1.js new file mode 100644 index 0000000000..17851695b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-66-1.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-66-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-66-1.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.enumerable and desc.enumerable has different values (8.12.9 step 7.b)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + enumerable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + enumerable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-66.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-66.js new file mode 100644 index 0000000000..2374396772 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-66.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-66", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-66.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.enumerable and desc.enumerable has different values (8.12.9 step 7.b)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + enumerable: true, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + enumerable: false + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-67.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-67.js new file mode 100644 index 0000000000..0a953fb3af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-67.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: "15.2.3.7-6-a-67", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-67.js", + + description: "Object.defineProperties throws TypeError when P is accessor property and P.configurable is false, desc is data property (8.12.9 step 9.a)", + + test: function testcase() { + + var obj = {}; + + function get_Func() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: get_Func, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + value: 11 + } + }); + return false; + } catch (e) { + var verifyEnumerable = false; + for (var p in obj) { + if (p === "foo") { + verifyEnumerable = true; + } + } + + var verifyValue = false; + verifyValue = (obj.foo === 10); + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + var verifyConfigurable = false; + delete obj.foo; + verifyConfigurable = obj.hasOwnProperty("foo"); + + return e instanceof TypeError && verifyConfigurable && !verifyEnumerable && + verifyValue && typeof (desc.set) === "undefined" && desc.get === get_Func; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-68.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-68.js new file mode 100644 index 0000000000..5a23401347 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-68.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.7-6-a-68", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-68.js", + + description: "Object.defineProperties throws TypeError when P is data property and P.configurable is false, desc is accessor property (8.12.9 step 9.a)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + configurable: false + }); + + function get_func() { + return 11; + } + + try { + Object.defineProperties(obj, { + foo: { + get: get_func + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-69.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-69.js new file mode 100644 index 0000000000..bfbe68625b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-69.js @@ -0,0 +1,70 @@ +/// 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: "15.2.3.7-6-a-69", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-69.js", + + description: "Object.defineProperties - 'P' is data property and P.configurable is true, desc is accessor property (8.12.9 step 9.b.i)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + configurable: true + }); + + function get_Func() { + return 20; + } + + Object.defineProperties(obj, { + foo: { + get: get_Func + } + }); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "foo") { + verifyEnumerable = true; + } + } + + var verifyValue = false; + verifyValue = (obj.foo === 20); + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + var verifyConfigurable = true; + delete obj.foo; + verifyConfigurable = obj.hasOwnProperty("foo"); + + return !verifyConfigurable && !verifyEnumerable && verifyValue && + typeof desc.set === "undefined" && desc.get === get_Func; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-7.js new file mode 100644 index 0000000000..688042d99f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-7.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-7.js", + + description: "Object.defineProperties - 'P' is own accessor property that overrides an inherited data property (8.12.9 step 1 ) ", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + value: 11, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + get: function () { + return 12; + }, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 13, + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && obj.prop === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-70.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-70.js new file mode 100644 index 0000000000..d84c68097e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-70.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-70", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-70.js", + + description: "Object.defineProperties - 'P' is accessor property and P.configurable is true, 'desc' in 'Properties' is data property (8.12.9 step 9.c.i)", + + test: function testcase() { + + var obj = {}; + + function get_func() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + value: 12 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 12, false, false, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-71.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-71.js new file mode 100644 index 0000000000..bd1e084ef3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-71.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-71", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-71.js", + + description: "Object.defineProperties throws TypeError when 'P' is data property and P.configurable is false, P.writable is false, desc is data property and desc.writable is true (8.12.9 step 10.a.i)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + writable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-72.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-72.js new file mode 100644 index 0000000000..b0fad99622 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-72.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-72", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-72.js", + + description: "Object.defineProperties throws TypeError when P is data property and P.configurable is false, P.writable is false, desc is data property and desc.value is not equal to P.value (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + value: 20 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-73.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-73.js new file mode 100644 index 0000000000..ae34c2d302 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-73.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-73", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-73.js", + + description: "Object.defineProperties will not throw TypeError if P.configurable is false, P.writalbe is false, P.value is undefined and properties.value is undefined (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: undefined, + writable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + value: undefined + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-74.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-74.js new file mode 100644 index 0000000000..ab10208e90 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-74.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-74", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-74.js", + + description: "Object.defineProperties will not throw TypeError if P.configurable is false, P.writalbe is false, P.value is null and properties.value is null (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: null, + writable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + value: null + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-75.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-75.js new file mode 100644 index 0000000000..7591fba8f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-75.js @@ -0,0 +1,68 @@ +/// 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: "15.2.3.7-6-a-75", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-75.js", + + description: "Object.defineProperties will not throw TypeError if P.configurable is false, P.writalbe is false, P.value is NaN and properties.value is NaN (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + var accessed = false; + + Object.defineProperty(obj, "foo", { + value: NaN, + writable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + value: NaN + } + }); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "foo") { + verifyEnumerable = true; + } + } + + obj.prop = "overrideData"; + var verifyValue = false; + verifyValue = obj.foo !== obj.foo && isNaN(obj.foo); + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + var verifyConfigurable = false; + delete obj.foo; + verifyConfigurable = obj.hasOwnProperty("foo"); + + return verifyValue && !verifyEnumerable && verifyConfigurable; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-76.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-76.js new file mode 100644 index 0000000000..3f869c328f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-76.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-76", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-76.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value is +0 and P.value is -0 (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: -0, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + value: +0 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-77.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-77.js new file mode 100644 index 0000000000..8df417a06f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-77.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-77", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-77.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value is +0 and P.value is -0 (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: +0, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + value: -0 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-78.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-78.js new file mode 100644 index 0000000000..5faa3465ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-78.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-78", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-78.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two numbers with the same value (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 100, + writable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + value: 100 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 100, false, false, false); + + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-79.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-79.js new file mode 100644 index 0000000000..0480c4af9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-79.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-79", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-79.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two numbers with different values (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + value: 20 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-8.js new file mode 100644 index 0000000000..f7521981b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-8.js @@ -0,0 +1,64 @@ +/// 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: "15.2.3.7-6-a-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-8.js", + + description: "Object.defineProperties - 'P' is own accessor property that overrides an inherited accessor property (8.12.9 step 1 ) ", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "prop", { + get: function() { + return 11; + }, + configurable: true + }); + var Con = function () { }; + Con.prototype = proto; + + var obj = new Con(); + Object.defineProperty(obj, "prop", { + get: function () { + return 12; + }, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + value: 13, + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && obj.prop === 12; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-80.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-80.js new file mode 100644 index 0000000000..5c9f815280 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-80.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-80", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-80.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two strings with the same value (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: "abcd", + writable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + value: "abcd" + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-81.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-81.js new file mode 100644 index 0000000000..f6a4b892ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-81.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-81", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-81.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two strings with different values (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: "abcd", + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + value: "defg" + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-82.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-82.js new file mode 100644 index 0000000000..29b9368790 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-82.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.7-6-a-82", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-82.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two booleans with the same value (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: false, + writable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + value: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-83.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-83.js new file mode 100644 index 0000000000..7c2d1994c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-83.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-83", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-83.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two booleans with different values (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: false, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + foo: { + value: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-84-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-84-1.js new file mode 100644 index 0000000000..f86130f670 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-84-1.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-84-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-84-1.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two Objects refer to the same object which has been updated before use it to update the object (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + + Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false + }); + + var obj2 = obj1; + obj2.y = "hello"; + + Object.defineProperties(obj, { + foo: { + value: obj2 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-84.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-84.js new file mode 100644 index 0000000000..fa647d5c32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-84.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.7-6-a-84", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-84.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two Objects refer to the same object (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + + Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + value: obj1 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-85.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-85.js new file mode 100644 index 0000000000..234d0e96c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-85.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-85", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-85.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.writalbe is false, properties.value and P.value are two objects with different values (8.12.9 step 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + var obj1 = { length: 10 }; + + Object.defineProperty(obj, "foo", { + value: obj1, + writable: false, + configurable: false + }); + + var obj2 = { length: 20 }; + + try { + Object.defineProperties(obj, { + foo: { + value: obj2 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-86-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-86-1.js new file mode 100644 index 0000000000..290838046f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-86-1.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-86-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-86-1.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, both properties.[[Set]] and P.[[Set]] are two objects which refer to the same object and the object has been updated after defined(8.12.9 step 11.a.i)", + + test: function testcase() { + + var obj = {}; + + var set_func = function (value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: set_func, + configurable: false + }); + + set_func = function (value) { + obj.setVerifyHelpProp1 = value; + } + + try { + Object.defineProperties(obj, { + foo: { + set: set_func + } + }); + } catch (e) { + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-86.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-86.js new file mode 100644 index 0000000000..ab2890caba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-86.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.7-6-a-86", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-86.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, both properties.[[Set]] and P.[[Set]] are two objects which refer to the same object (8.12.9 step 11.a.i)", + + test: function testcase() { + + var obj = {}; + + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: set_func, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + set: set_func + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); + + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-87.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-87.js new file mode 100644 index 0000000000..e81568c21d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-87.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.7-6-a-87", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-87.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, both properties.[[Set]] and P.[[Set]] are two objects which refer to different objects (8.12.9 step 11.a.i)", + + test: function testcase() { + + var obj = {}; + + function set_func1(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + set: set_func1, + configurable: false + }); + + function set_func2() {} + + try { + Object.defineProperties(obj, { + foo: { + set: set_func2 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func1, "setVerifyHelpProp", false, false); + } + + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-88.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-88.js new file mode 100644 index 0000000000..9419dd2f91 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-88.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: "15.2.3.7-6-a-88", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-88.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.[[Set]] is undefined, properties.[[Set]] refers to an objcet (8.12.9 step 11.a.i)", + + test: function testcase() { + + var obj = {}; + + function get_Func() { + return 0; + } + + Object.defineProperty(obj, "foo", { + set: undefined, + get: get_Func, + enumerable: false, + configurable: false + }); + + function set_Func() { } + + try { + Object.defineProperties(obj, { + foo: { + set: set_Func + } + }); + return false; + } catch (e) { + var verifyEnumerable = false; + for (var p in obj) { + if (p === "foo") { + verifyEnumerable = true; + } + } + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + var verifyConfigurable = false; + delete obj.foo; + verifyConfigurable = obj.hasOwnProperty("foo"); + + return e instanceof TypeError && !verifyEnumerable && verifyConfigurable && typeof (desc.set) === "undefined"; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-89.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-89.js new file mode 100644 index 0000000000..7606cc9327 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-89.js @@ -0,0 +1,68 @@ +/// 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: "15.2.3.7-6-a-89", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-89.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, P.[[Set]] and properties.[[Set]] are undefined (8.12.9 step 11.a.i)", + + test: function testcase() { + + var obj = {}; + + function get_Func() { + return 0; + } + + Object.defineProperty(obj, "foo", { + get: get_Func, + set: undefined, + enumerable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + set: undefined + } + }); + + var verifyEnumerable = false; + for (var p in obj) { + if (p === "foo") { + verifyEnumerable = true; + } + } + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + var verifyConfigurable = false; + delete obj.foo; + verifyConfigurable = obj.hasOwnProperty("foo"); + + return verifyConfigurable && !verifyEnumerable && typeof (desc.set) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-9.js new file mode 100644 index 0000000000..e7e03b7008 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-9.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.7-6-a-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-9.js", + + description: "Object.defineProperties - 'P' is own accessor property without a get function (8.12.9 step 1 ) ", + + test: function testcase() { + var obj = {}; + Object.defineProperty(obj, "prop", { + set: function () { }, + configurable: false + }); + + try { + Object.defineProperties(obj, { + prop: { + get: function () { }, + configurable: true + } + }); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-90.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-90.js new file mode 100644 index 0000000000..551c380cc5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-90.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.7-6-a-90", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-90.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, both properties.[[Get]] and P.[[Get]] are two objects which refer to the same object (8.12.9 step 11.a.ii)", + + test: function testcase() { + + var obj = {}; + + function set_func(value) { + obj.setVerifyHelpProp = value; + } + function get_func() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + get: get_func + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-91.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-91.js new file mode 100644 index 0000000000..4fb1ad8b14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-91.js @@ -0,0 +1,66 @@ +/// 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: "15.2.3.7-6-a-91", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-91.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, both properties.[[Get]] and P.[[Get]] are two objects which refer to different objects (8.12.9 step 11.a.ii)", + + test: function testcase() { + + var obj = {}; + + function set_func(value) { + obj.setVerifyHelpProp = value; + } + function get_func1() { + return 10; + } + + Object.defineProperty(obj, "foo", { + get: get_func1, + set: set_func, + enumerable: false, + configurable: false + }); + + function get_func2() { + return 20; + } + + try { + Object.defineProperties(obj, { + foo: { + get: get_func2 + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", get_func1, set_func, "setVerifyHelpProp", false, false); + } + + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-92.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-92.js new file mode 100644 index 0000000000..f20bd0aad9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-92.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.7-6-a-92", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-92.js", + + description: "Object.defineProperties throws TypeError when P.configurable is false, P.[[Get]] is undefined, properties.[[Get]] refers to an objcet (8.12.9 step 11.a.ii)", + + test: function testcase() { + + var obj = {}; + + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: undefined, + set: set_func, + enumerable: false, + configurable: false + }); + + function get_func() { + return 0; + } + + try { + Object.defineProperties(obj, { + foo: { + get: get_func + } + }); + return false; + } catch (e) { + return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-1.js new file mode 100644 index 0000000000..65f1fbee18 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-1.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.7-6-a-93-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-1.js", + + description: "Object.defineProperties will update [[Value]] attribute of named data property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false but not when both are false (8.12.9 - step Note & 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "property", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "property1", { + value: 1003, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + property: { + value: 1002 + }, + property1: { + value: 1004 + } + }); + + return false; + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true) && + dataPropertyAttributesAreCorrect(obj, "property1", 1003, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-2.js new file mode 100644 index 0000000000..8b3f2b1c3c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-2.js @@ -0,0 +1,65 @@ +/// 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: "15.2.3.7-6-a-93-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93-2.js", + + description: "Object.defineProperties will update [[Value]] attribute of indexed data property 'P' successfully when [[Configurable]] attribute is true and [[Writable]] attribute is false but not when both are false (8.12.9 - step Note & 10.a.ii.1)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "0", { + value: 1001, + writable: false, + configurable: true + }); + + Object.defineProperty(obj, "1", { + value: 1003, + writable: false, + configurable: false + }); + + try { + Object.defineProperties(obj, { + 0: { + value: 1002 + }, + 1: { + value: 1004 + } + }); + + return false; + } catch (e) { + return e instanceof TypeError && + dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true) && + dataPropertyAttributesAreCorrect(obj, "1", 1003, false, false, false); + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93.js new file mode 100644 index 0000000000..7bb1eb70a7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.7-6-a-93", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-93.js", + + description: "Object.defineProperties will not throw TypeError when P.configurable is false, P.[[Get]] and properties.[[Get]] are undefined (8.12.9 step 11.a.ii)", + + test: function testcase() { + + var obj = {}; + + function set_func(value) { + obj.setVerifyHelpProp = value; + } + + Object.defineProperty(obj, "foo", { + get: undefined, + set: set_func, + enumerable: false, + configurable: false + }); + + Object.defineProperties(obj, { + foo: { + get: undefined + } + }); + return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false); + }, + + precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor) && fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-94.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-94.js new file mode 100644 index 0000000000..fb68d814f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-94.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.7-6-a-94", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-94.js", + + description: "Object.defineProperties - 'P' is data property, properties.value and P.value are two different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true + + Object.defineProperties(obj, { + foo: { + value: 200 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-95.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-95.js new file mode 100644 index 0000000000..8cf9e397d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-95.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-95", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-95.js", + + description: "Object.defineProperties - 'P' is data property, P.value is present and properties.value is undefined (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 200, + enumerable: true, + writable: true, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + value: undefined + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-96.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-96.js new file mode 100644 index 0000000000..e9914827db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-96.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-96", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-96.js", + + description: "Object.defineProperties - 'P' is data property, properties.value is present and P.value is undefined (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: undefined, + enumerable: true, + writable: true, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + value: 200 + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-97.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-97.js new file mode 100644 index 0000000000..431f507c7e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-97.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-97", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-97.js", + + description: "Object.defineProperties - 'P' is data property, P.writable and properties.writable are different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 100, + enumerable: true, + writable: false, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + writable: true + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-98.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-98.js new file mode 100644 index 0000000000..3f40cfe425 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-98.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-98", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-98.js", + + description: "Object.defineProperties - 'P' is data property, P.enumerable and properties.enumerable are different values (8.12.9 step 12)", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 200, + enumerable: false, + writable: true, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + enumerable: true + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-99.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-99.js new file mode 100644 index 0000000000..6dc5d37207 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-99.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.7-6-a-99", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.7/15.2.3.7-6-a-99.js", + + description: "Object.defineProperties - 'P' is data property, P.configurable is true and properties.configurable is false", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 200, + enumerable: true, + writable: true, + configurable: true + }); + + Object.defineProperties(obj, { + foo: { + configurable: false + } + }); + return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.defineProperties) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-0-1.js new file mode 100644 index 0000000000..98fbedeb89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.8-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-0-1.js", + +description: "Object.seal must exist as a function", + +test: function testcase() { + var f = Object.seal; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-0-2.js new file mode 100644 index 0000000000..b9b90d29bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.8-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-0-2.js", + +description: "Object.seal must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.seal.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.seal); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.js new file mode 100644 index 0000000000..ff3c19dc3b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.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: "15.2.3.8-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-1.js", + + description: "Object.seal throws TypeError if type of first param is undefined", + + test: function testcase() { + try { + Object.seal(undefined); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.seal); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.js new file mode 100644 index 0000000000..b1dad704c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.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: "15.2.3.8-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-2.js", + + description: "Object.seal throws TypeError if type of first param is null", + + test: function testcase() { + try { + Object.seal(null); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.seal); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.js new file mode 100644 index 0000000000..6ec4b042ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.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: "15.2.3.8-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-3.js", + + description: "Object.seal throws TypeError if type of first param is a boolean primitive", + + test: function testcase() { + try { + Object.seal(false); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.seal); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.js new file mode 100644 index 0000000000..c99bddcaa0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.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: "15.2.3.8-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1-4.js", + + description: "Object.seal throws TypeError if type of first param is a string primitive", + + test: function testcase() { + try { + Object.seal("abc"); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.seal); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.js new file mode 100644 index 0000000000..2a29ee680d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.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: "15.2.3.8-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-1.js", + +description: "Object.seal throws TypeError if type of first param is not Object", + +test: function testcase() { + try { + Object.seal(0); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Object.seal); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-1.js new file mode 100644 index 0000000000..ee021cd9e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-1.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: "15.2.3.8-2-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-1.js", + + description: "Object.seal - extensible of 'O' is set as false even if 'O' has no own property", + + test: function testcase() { + var obj = {}; + + var preCheck = Object.isExtensible(obj); + + Object.seal(obj); + + return preCheck && !Object.isExtensible(obj); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-2.js new file mode 100644 index 0000000000..1fd56427d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-2.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.8-2-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-2.js", + + description: "Object.seal - inherited data properties are ignored", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "Father", { + value: 10, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + var preCheck = Object.isExtensible(child); + Object.seal(child); + + var beforeDeleted = proto.hasOwnProperty("Father"); + delete proto.Father; + var afterDeleted = proto.hasOwnProperty("Father"); + + return preCheck && beforeDeleted && !afterDeleted; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-3.js new file mode 100644 index 0000000000..87f83f1c36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-3.js @@ -0,0 +1,56 @@ +/// 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: "15.2.3.8-2-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-3.js", + + description: "Object.seal - inherited accessor properties are ignored", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "Father", { + get: function () { + return 10; + }, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + var preCheck = Object.isExtensible(child); + Object.seal(child); + + var beforeDeleted = proto.hasOwnProperty("Father"); + delete proto.Father; + var afterDeleted = proto.hasOwnProperty("Father"); + + return preCheck && beforeDeleted && !afterDeleted; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-4.js new file mode 100644 index 0000000000..a36d9d761a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-4.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.8-2-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-4.js", + + description: "Object.seal - non-enumerable own property of 'O' is sealed", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + enumerable: false, + configurable: true + }); + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + + var beforeDeleted = obj.hasOwnProperty("foo"); + delete obj.foo; + var afterDeleted = obj.hasOwnProperty("foo"); + + return preCheck && beforeDeleted && afterDeleted; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-1.js new file mode 100644 index 0000000000..64b5077665 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-1.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: "15.2.3.8-2-a-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-1.js", + + description: "Object.seal - 'P' is own data property", + + test: function testcase() { + var obj = {}; + + obj.foo = 10; // default [[Configurable]] attribute value of foo: true + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + + delete obj.foo; + return preCheck && obj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-10.js new file mode 100644 index 0000000000..3a3212fa49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-10.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: "15.2.3.8-2-a-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-10.js", + + description: "Object.seal - 'P' is own property of a Boolean object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var boolObj = new Boolean(false); + + boolObj.foo = 10; + var preCheck = Object.isExtensible(boolObj); + Object.seal(boolObj); + + delete boolObj.foo; + return preCheck && boolObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-11.js new file mode 100644 index 0000000000..ef4bb7d83a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-11.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: "15.2.3.8-2-a-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-11.js", + + description: "Object.seal - 'P' is own property of a Number object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var numObj = new Number(-1); + + numObj.foo = 10; + var preCheck = Object.isExtensible(numObj); + Object.seal(numObj); + + delete numObj.foo; + return preCheck && numObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-12.js new file mode 100644 index 0000000000..14ee5f8005 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-12.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: "15.2.3.8-2-a-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-12.js", + + description: "Object.seal - 'P' is own property of a Date object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var dateObj = new Date(); + + dateObj.foo = 10; + var preCheck = Object.isExtensible(dateObj); + Object.seal(dateObj); + + delete dateObj.foo; + return preCheck && dateObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-13.js new file mode 100644 index 0000000000..692d4fd4cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-13.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: "15.2.3.8-2-a-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-13.js", + + description: "Object.seal - 'P' is own property of a RegExp object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var regObj = new RegExp(); + + regObj.foo = 10; + var preCheck = Object.isExtensible(regObj); + Object.seal(regObj); + + delete regObj.foo; + return preCheck && regObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-14.js new file mode 100644 index 0000000000..d1bdb02ea5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-14.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: "15.2.3.8-2-a-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-14.js", + + description: "Object.seal - 'P' is own property of an Error object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var errObj = new Error(); + + errObj.foo = 10; + var preCheck = Object.isExtensible(errObj); + Object.seal(errObj); + + delete errObj.foo; + return preCheck && errObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-15.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-15.js new file mode 100644 index 0000000000..207d79e7ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-15.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: "15.2.3.8-2-a-15", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-15.js", + + description: "Object.seal - 'P' is own property of an Arguments object which implements its own [[GetOwnProperty]]", + + test: function testcase() { + var argObj = (function () { return arguments; })(); + + argObj.foo = 10; // default [[Configurable]] attribute value of foo: true + var preCheck = Object.isExtensible(argObj); + Object.seal(argObj); + + delete argObj.foo; + return preCheck && argObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-2.js new file mode 100644 index 0000000000..5102c3a7f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-2.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.8-2-a-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-2.js", + + description: "Object.seal - 'P' is own data property that overrides an inherited data property", + + test: function testcase() { + var proto = { foo: 0 }; + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "foo", { + value: 10, + configurable: true + }); + var preCheck = Object.isExtensible(child); + Object.seal(child); + + delete child.foo; + return preCheck && child.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-3.js new file mode 100644 index 0000000000..f22765f412 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-3.js @@ -0,0 +1,57 @@ +/// 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: "15.2.3.8-2-a-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-3.js", + + description: "Object.seal - 'P' is own data property that overrides an inherited accessor property", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "foo", { + get: function () { + return 0; + }, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + Object.defineProperty(child, "foo", { + value: 10, + configurable: true + }); + var preCheck = Object.isExtensible(child); + Object.seal(child); + + delete child.foo; + return preCheck && child.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-4.js new file mode 100644 index 0000000000..06ff37f4e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-4.js @@ -0,0 +1,48 @@ +/// 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: "15.2.3.8-2-a-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-4.js", + + description: "Object.seal - 'P' is own accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "foo", { + get: function () { + return 10; + }, + configurable: true + }); + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + + delete obj.foo; + return preCheck && obj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-5.js new file mode 100644 index 0000000000..e58a39e877 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-5.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.8-2-a-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-5.js", + + description: "Object.seal - 'P' is own accessor property that overrides an inherited data property", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "foo", { + value: 0, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(child, "foo", { + get: function () { + return 10; + }, + configurable: true + }); + var preCheck = Object.isExtensible(child); + Object.seal(child); + + delete child.foo; + return preCheck && child.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-6.js new file mode 100644 index 0000000000..008bfc61d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-6.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.8-2-a-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-6.js", + + description: "Object.seal - 'P' is own accessor property that overrides an inherited accessor property", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "foo", { + get: function () { + return 0; + }, + configurable: true + }); + + var ConstructFun = function () { }; + ConstructFun.prototype = proto; + + var child = new ConstructFun(); + + Object.defineProperty(child, "foo", { + get: function () { + return 10; + }, + configurable: true + }); + var preCheck = Object.isExtensible(child); + Object.seal(child); + + delete child.foo; + return preCheck && child.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-7.js new file mode 100644 index 0000000000..e8ec238d01 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-7.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: "15.2.3.8-2-a-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-7.js", + + description: "Object.seal - 'P' is own property of a Function object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var funObj = function () { }; + + funObj.foo = 10; // default [[Configurable]] attribute value of foo: true + var preCheck = Object.isExtensible(funObj); + Object.seal(funObj); + + delete funObj.foo; + return preCheck && funObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-8.js new file mode 100644 index 0000000000..f593ce910a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-8.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: "15.2.3.8-2-a-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-8.js", + + description: "Object.seal - 'P' is own property of an Array object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var arrObj = []; + + arrObj.foo = 10; + var preCheck = Object.isExtensible(arrObj); + Object.seal(arrObj); + + delete arrObj.foo; + return preCheck && arrObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-9.js new file mode 100644 index 0000000000..c886e221b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-9.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: "15.2.3.8-2-a-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-a-9.js", + + description: "Object.seal - 'P' is own property of a String object which implements its own [[GetOwnProperty]]", + + test: function testcase() { + var strObj = new String("abc"); + + strObj.foo = 10; // default [[Configurable]] attribute value of foo: true + var preCheck = Object.isExtensible(strObj); + Object.seal(strObj); + + delete strObj.foo; + return preCheck && strObj.foo === 10; + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-1.js new file mode 100644 index 0000000000..baae4b93ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-1.js @@ -0,0 +1,47 @@ +/// 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: "15.2.3.8-2-b-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-1.js", + + description: "Object.seal - the [[Configurable]] attribute of own data property of 'O' is set from true to false and other attributes of the property are unaltered", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + writable: true, + enumerable: true, + configurable: true + }); + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + + return preCheck && dataPropertyAttributesAreCorrect(obj, "foo", 10, true, true, false); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-2.js new file mode 100644 index 0000000000..580c75d93b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-2.js @@ -0,0 +1,54 @@ +/// 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: "15.2.3.8-2-b-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-2.js", + + description: "Object.seal - the [[Configurable]] attribute of own accessor property of 'O' is set from true to false and other attributes of the property are unaltered", + + test: function testcase() { + var obj = {}; + obj.variableForHelpVerify = "data"; + + function setFunc(value) { + obj.variableForHelpVerify = value; + } + function getFunc() { + return 10; + } + Object.defineProperty(obj, "foo", { + get: getFunc, + set: setFunc, + enumerable: true, + configurable: true + }); + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + + return preCheck && accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "variableForHelpVerify", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-3.js new file mode 100644 index 0000000000..b46505bf9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-3.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.8-2-b-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-3.js", + + description: "Object.seal - the [[Configurable]] attribute of all own properties of 'O' are set from true to false and other attributes of the property are unaltered", + + test: function testcase() { + var obj = {}; + obj.variableForHelpVerify = "data"; + + Object.defineProperty(obj, "foo1", { + value: 10, + writable: true, + enumerable: true, + configurable: true + }); + + function set_func(value) { + obj.variableForHelpVerify = value; + } + function get_func() { + return 10; + } + Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + + return preCheck && dataPropertyAttributesAreCorrect(obj, "foo1", 10, true, true, false) && + accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "variableForHelpVerify", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-4.js new file mode 100644 index 0000000000..f4a13bf321 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-4.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.8-2-b-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-b-4.js", + + description: "Object.seal - all own properties of 'O' are already non-configurable", + + test: function testcase() { + var obj = {}; + obj.variableForHelpVerify = "data"; + + Object.defineProperty(obj, "foo1", { + value: 10, + writable: true, + enumerable: true, + configurable: false + }); + + function set_func(value) { + obj.variableForHelpVerify = value; + } + function get_func() { + return 10; + } + Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + enumerable: true, + configurable: false + }); + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + + return preCheck && dataPropertyAttributesAreCorrect(obj, "foo1", 10, true, true, false) && + accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "variableForHelpVerify", true, false); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.defineProperty) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-1.js new file mode 100644 index 0000000000..30a3708c60 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-1.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: "15.2.3.8-2-c-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-1.js", + + description: "Object.seal - 'O' is a Function object", + + test: function testcase() { + + var fun = function () { }; + var preCheck = Object.isExtensible(fun); + Object.seal(fun); + + return preCheck && Object.isSealed(fun); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-2.js new file mode 100644 index 0000000000..adb69463e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-2.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: "15.2.3.8-2-c-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-2.js", + + description: "Object.seal - 'O' is an Array object", + + test: function testcase() { + + var arr = [0, 1]; + var preCheck = Object.isExtensible(arr); + Object.seal(arr); + + return preCheck && Object.isSealed(arr); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-3.js new file mode 100644 index 0000000000..b4f7d1dcb1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-3.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: "15.2.3.8-2-c-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-3.js", + + description: "Object.seal - 'O' is a String object", + + test: function testcase() { + + var strObj = new String("a"); + var preCheck = Object.isExtensible(strObj); + Object.seal(strObj); + + return preCheck && Object.isSealed(strObj); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-4.js new file mode 100644 index 0000000000..aa5f90fcc7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-4.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: "15.2.3.8-2-c-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-4.js", + + description: "Object.seal - 'O' is a Boolean object", + + test: function testcase() { + + var boolObj = new Boolean(false); + var preCheck = Object.isExtensible(boolObj); + Object.seal(boolObj); + + return preCheck && Object.isSealed(boolObj); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-5.js new file mode 100644 index 0000000000..a3366a5e6d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-5.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: "15.2.3.8-2-c-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-5.js", + + description: "Object.seal - 'O' is a Number object", + + test: function testcase() { + + var numObj = new Number(3); + var preCheck = Object.isExtensible(numObj); + Object.seal(numObj); + + return preCheck && Object.isSealed(numObj); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-6.js new file mode 100644 index 0000000000..a5983d0537 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-6.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: "15.2.3.8-2-c-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-6.js", + + description: "Object.seal - 'O' is a Date object", + + test: function testcase() { + + var dateObj = new Date(); + var preCheck = Object.isExtensible(dateObj); + Object.seal(dateObj); + + return preCheck && Object.isSealed(dateObj); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-7.js new file mode 100644 index 0000000000..e694cfd383 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-7.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.8-2-c-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-7.js", + + description: "Object.seal - 'O' is a RegExp object", + + test: function testcase() { + var regObj = new RegExp(); + var preCheck = Object.isExtensible(regObj); + Object.seal(regObj); + + return preCheck && Object.isSealed(regObj); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-8.js new file mode 100644 index 0000000000..8dae3f9339 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-8.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: "15.2.3.8-2-c-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-8.js", + + description: "Object.seal - 'O' is an Error object", + + test: function testcase() { + + var errObj = new Error(); + var preCheck = Object.isExtensible(errObj); + Object.seal(errObj); + + return preCheck && Object.isSealed(errObj); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-9.js new file mode 100644 index 0000000000..deb77e2ed6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-9.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: "15.2.3.8-2-c-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-2-c-9.js", + + description: "Object.seal - 'O' is an Arguments object", + + test: function testcase() { + + var argObj = (function () { return arguments; })(); + + var preCheck = Object.isExtensible(argObj); + Object.seal(argObj); + + return preCheck && Object.isSealed(argObj); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-3-1.js new file mode 100644 index 0000000000..bbdca0bd13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-3-1.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: "15.2.3.8-3-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-3-1.js", + + description: "Object.seal - returned object is not extensible", + + test: function testcase() { + + var obj = {}; + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + return preCheck && !Object.isExtensible(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-1.js new file mode 100644 index 0000000000..2c164fffb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-1.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.8-4-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-1.js", + + description: "Object.seal - 'O' is sealed already", + + test: function testcase() { + + var obj = {}; + + obj.foo = 10; // default value of attributes: writable: true, configurable: true, enumerable: true + var preCheck = Object.isExtensible(obj); + Object.seal(obj); + + Object.seal(obj); + return preCheck && Object.isSealed(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-2.js new file mode 100644 index 0000000000..6c80112735 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-2.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.8-4-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-2.js", + + description: "Object.seal - 'O' is frozen already", + + test: function testcase() { + + var obj = {}; + + obj.foo = 10; // default value of attributes: writable: true, configurable: true, enumerable: true + var preCheck = Object.isExtensible(obj); + Object.freeze(obj); + + Object.seal(obj); + return preCheck && Object.isSealed(obj); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.freeze) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-3.js new file mode 100644 index 0000000000..e543a43b45 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-3.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: "15.2.3.8-4-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.8/15.2.3.8-4-3.js", + + description: "Object.seal - the extension of 'O' is prevented already", + + test: function testcase() { + + var obj = {}; + + obj.foo = 10; // default value of attributes: writable: true, configurable: true, enumerable: true + var preCheck = Object.isExtensible(obj); + Object.preventExtensions(obj); + Object.seal(obj); + return preCheck && Object.isSealed(obj); + }, + + precondition: function prereq() { + return fnExists(Object.seal) && fnExists(Object.isSealed) && fnExists(Object.preventExtensions) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-0-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-0-1.js new file mode 100644 index 0000000000..97d2e00709 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.2.3.9-0-1", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-0-1.js", + +description: "Object.freeze must exist as a function", + +test: function testcase() { + var f = Object.freeze; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-0-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-0-2.js new file mode 100644 index 0000000000..c8ee168f02 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.2.3.9-0-2", + +path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-0-2.js", + +description: "Object.freeze must exist as a function taking 1 parameter", + +test: function testcase() { + if (Object.freeze.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.js new file mode 100644 index 0000000000..e831462988 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.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: "15.2.3.9-1-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-1.js", + + description: "Object.freeze throws TypeError if type of first param is undefined", + + test: function testcase() { + try { + Object.freeze(undefined); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.js new file mode 100644 index 0000000000..9b729c205e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.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: "15.2.3.9-1-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-2.js", + + description: "Object.freeze throws TypeError if type of first param is null", + + test: function testcase() { + try { + Object.freeze(null); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js new file mode 100644 index 0000000000..8da20a20af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.9-1-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-3.js", + + description: "Object.freeze throws TypeError if type of first param is boolean primitive", + + test: function testcase() { + var result = false; + try { + Object.freeze(false); + + return false; + } catch (e) { + result = e instanceof TypeError; + } + try { + Object.freeze(true); + + return false; + } catch (e) { + return result && e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.js new file mode 100644 index 0000000000..5ba13b42b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.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: "15.2.3.9-1-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1-4.js", + + description: "Object.freeze throws TypeError if type of first param is string primitive", + + test: function testcase() { + try { + Object.freeze("abc"); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.js new file mode 100644 index 0000000000..3581213162 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.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: "15.2.3.9-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-1.js", + + description: "Object.freeze throws TypeError if type of first param is not Object", + + test: function testcase() { + try { + Object.freeze(0); + return false; + } catch (e) { + return e instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Object.freeze); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-1.js new file mode 100644 index 0000000000..ef571f530b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-1.js", + + description: "Object.freeze - extensible of 'O' is set as false even if 'O' has no own property", + + test: function testcase() { + var obj = {}; + + Object.freeze(obj); + + return !Object.isExtensible(obj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-2.js new file mode 100644 index 0000000000..119f5183c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-2.js @@ -0,0 +1,53 @@ +/// 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: "15.2.3.9-2-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-2.js", + + description: "Object.freeze - inherited data properties are not frozen", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "Father", { + value: 10, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.freeze(child); + + var beforeDeleted = proto.hasOwnProperty("Father"); + delete proto.Father; + var afterDeleted = proto.hasOwnProperty("Father"); + + return beforeDeleted && !afterDeleted; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-3.js new file mode 100644 index 0000000000..366c6e8fa8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-3.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: "15.2.3.9-2-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-3.js", + + description: "Object.freeze - inherited accessor properties are not frozen", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "Father", { + get: function () { + return 10; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.freeze(child); + + var beforeDeleted = proto.hasOwnProperty("Father"); + delete proto.Father; + var afterDeleted = proto.hasOwnProperty("Father"); + + return beforeDeleted && !afterDeleted; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-4.js new file mode 100644 index 0000000000..20bb7b728e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-4.js @@ -0,0 +1,52 @@ +/// 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: "15.2.3.9-2-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-4.js", + + description: "Object.freeze - Non-enumerable own properties of 'O' are frozen", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + enumerable: false, + configurable: true + }); + + Object.freeze(obj); + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + var beforeDeleted = obj.hasOwnProperty("foo"); + delete obj.foo; + var afterDeleted = obj.hasOwnProperty("foo"); + + return beforeDeleted && afterDeleted && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-1.js new file mode 100644 index 0000000000..a7925c9668 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-1.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-1.js", + + description: "Object.freeze - 'P' is own data property", + + test: function testcase() { + var obj = {}; + + obj.foo = 10; // default [[Configurable]] attribute value of foo: true + + Object.freeze(obj); + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + delete obj.foo; + return obj.foo === 10 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-10.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-10.js new file mode 100644 index 0000000000..89d973f6a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-10.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-10", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-10.js", + + description: "Object.freeze - 'P' is own named property of an Array object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var arrObj = []; + + arrObj.foo = 10; // default [[Configurable]] attribute value of foo: true + + Object.freeze(arrObj); + + var desc = Object.getOwnPropertyDescriptor(arrObj, "foo"); + + delete arrObj.foo; + return arrObj.foo === 10 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-11.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-11.js new file mode 100644 index 0000000000..7b4db73c3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-11.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-11", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-11.js", + + description: "Object.freeze - 'P' is own index property of the Arguments object that implements its own [[GetOwnProperty]]", + + test: function testcase() { + + // default [[Configurable]] attribute value of "0": true + var argObj = (function () { return arguments; }(1, 2, 3)); + + Object.freeze(argObj); + + var desc = Object.getOwnPropertyDescriptor(argObj, "0"); + + delete argObj[0]; + return argObj[0] === 1 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-12.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-12.js new file mode 100644 index 0000000000..8718060e6e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-12.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-12", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-12.js", + + description: "Object.freeze - 'P' is own index property of a String object that implements its own [[GetOwnProperty]]", + + test: function testcase() { + + // default [[Configurable]] attribute value of "0": true + var strObj = new String("abc"); + + Object.freeze(strObj); + + var desc = Object.getOwnPropertyDescriptor(strObj, "0"); + + delete strObj[0]; + return strObj[0] === "a" && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-13.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-13.js new file mode 100644 index 0000000000..a04d1ac788 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-13.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-13", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-13.js", + + description: "Object.freeze - 'P' is own index property of the Object", + + test: function testcase() { + + // default [[Configurable]] attribute value of "0": true + var obj = { 0: 0, 1: 1, length: 2}; + + Object.freeze(obj); + + var desc = Object.getOwnPropertyDescriptor(obj, "0"); + + delete obj[0]; + return obj[0] === 0 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-14.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-14.js new file mode 100644 index 0000000000..0de4a3745c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-14.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-14", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-14.js", + + description: "Object.freeze - 'P' is own index property of an Array object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + + // default [[Configurable]] attribute value of "0": true + var arrObj = [0, 1, 2]; + + Object.freeze(arrObj); + + var desc = Object.getOwnPropertyDescriptor(arrObj, "0"); + + delete arrObj[0]; + return arrObj[0] === 0 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-2.js new file mode 100644 index 0000000000..743e59e0b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-2.js @@ -0,0 +1,51 @@ +/// 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: "15.2.3.9-2-a-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-2.js", + + description: "Object.freeze - 'P' is own data property that overrides an inherited data property", + + test: function testcase() { + + var proto = { foo: 0 }; // default [[Configurable]] attribute value of foo: true + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + child.foo = 10; // default [[Configurable]] attribute value of foo: true + + Object.freeze(child); + + var desc = Object.getOwnPropertyDescriptor(child, "foo"); + + delete child.foo; + return child.foo === 10 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-3.js new file mode 100644 index 0000000000..5105f98a2e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-3.js @@ -0,0 +1,59 @@ +/// 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: "15.2.3.9-2-a-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-3.js", + + description: "Object.freeze - 'P' is own data property that overrides an inherited accessor property", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "foo", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "foo", { + value: 10, + configurable: true + }); + + Object.freeze(child); + + var desc = Object.getOwnPropertyDescriptor(child, "foo"); + + delete child.foo; + return child.foo === 10 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-4.js new file mode 100644 index 0000000000..3d906c938c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-4.js @@ -0,0 +1,50 @@ +/// 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: "15.2.3.9-2-a-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-4.js", + + description: "Object.freeze - 'P' is own accessor property", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "foo", { + get: function () { + return 10; + }, + configurable: true + }); + + Object.freeze(obj); + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + delete obj.foo; + return obj.foo === 10 && desc.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-5.js new file mode 100644 index 0000000000..0cbddb47df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-5.js @@ -0,0 +1,58 @@ +/// 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: "15.2.3.9-2-a-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-5.js", + + description: "Object.freeze - 'P' is own accessor property that overrides an inherited data property", + + test: function testcase() { + + var proto = {}; + + proto.foo = 0; // default [[Configurable]] attribute value of foo: true + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "foo", { + get: function () { + return 10; + }, + configurable: true + }); + + Object.freeze(child); + + var desc = Object.getOwnPropertyDescriptor(child, "foo"); + + delete child.foo; + return child.foo === 10 && desc.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-6.js new file mode 100644 index 0000000000..a1a409e805 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-6.js @@ -0,0 +1,62 @@ +/// 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: "15.2.3.9-2-a-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-6.js", + + description: "Object.freeze - 'P' is own accessor property that overrides an inherited accessor property", + + test: function testcase() { + var proto = {}; + + Object.defineProperty(proto, "foo", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "foo", { + get: function () { + return 10; + }, + configurable: true + }); + + Object.freeze(child); + + var desc = Object.getOwnPropertyDescriptor(child, "foo"); + + delete child.foo; + return child.foo === 10 && desc.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-7.js new file mode 100644 index 0000000000..8fbf484759 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-7.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-7.js", + + description: "Object.freeze - 'P' is own named property of an Arguments object that implements its own [[GetOwnProperty]]", + + test: function testcase() { + var argObj = (function () { return arguments; }()); + + argObj.foo = 10; // default [[Configurable]] attribute value of foo: true + + Object.freeze(argObj); + + var desc = Object.getOwnPropertyDescriptor(argObj, "foo"); + + delete argObj.foo; + return argObj.foo === 10 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-8.js new file mode 100644 index 0000000000..7c3dc5f167 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-8.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-8.js", + + description: "Object.freeze - 'P' is own named property of the String object that implements its own [[GetOwnProperty]]", + + test: function testcase() { + var strObj = new String("abc"); + + strObj.foo = 10; // default [[Configurable]] attribute value of foo: true + + Object.freeze(strObj); + + var desc = Object.getOwnPropertyDescriptor(strObj, "foo"); + + delete strObj.foo; + return strObj.foo === 10 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-9.js new file mode 100644 index 0000000000..8c2c8c943a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-9.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-2-a-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-a-9.js", + + description: "Object.freeze - 'P' is own property of the Function object that uses Object's [[GetOwnProperty]]", + + test: function testcase() { + var funObj = function () { }; + + funObj.foo = 10; // default [[Configurable]] attribute value of foo: true + + Object.freeze(funObj); + + var desc = Object.getOwnPropertyDescriptor(funObj, "foo"); + + delete funObj.foo; + return funObj.foo === 10 && desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-b-i-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-b-i-1.js new file mode 100644 index 0000000000..f42542824a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-b-i-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.9-2-b-i-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-b-i-1.js", + + description: "Object.freeze - The [[Wrtiable]] attribute of own data property of 'O' is set to false while other attributes are unchanged", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + writable: true, + enumerable: true, + configurable: false + }); + + Object.freeze(obj); + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false) && + desc.writable === false && desc.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-b-i-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-b-i-2.js new file mode 100644 index 0000000000..81a4eb8f68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-b-i-2.js @@ -0,0 +1,60 @@ +/// 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: "15.2.3.9-2-b-i-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-b-i-2.js", + + description: "Object.freeze - The [[Wrtiable]] attribute of all own data property of 'O' is set to false while other attributes are unchanged", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: false + }); + + Object.defineProperty(obj, "foo2", { + value: 20, + writable: true, + enumerable: false, + configurable: false + }); + + Object.freeze(obj); + + var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); + var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); + + return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) && + dataPropertyAttributesAreCorrect(obj, "foo2", 20, false, false, false) && + desc1.configurable === false && desc1.writable === false && + desc2.configurable === false && desc2.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-1.js new file mode 100644 index 0000000000..bed7b2bb9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-1.js @@ -0,0 +1,49 @@ +/// 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: "15.2.3.9-2-c-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-1.js", + + description: "Object.freeze - The [[Configurable]] attribute of own data property of 'O' is set to false while other attributes are unchanged", + + test: function testcase() { + var obj = {}; + + Object.defineProperty(obj, "foo", { + value: 10, + writable: false, + enumerable: true, + configurable: true + }); + + Object.freeze(obj); + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + + return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false) && + desc.configurable === false && desc.writable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-2.js new file mode 100644 index 0000000000..9e38af2dc3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-2.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: "15.2.3.9-2-c-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-2.js", + + description: "Object.freeze - The [[Configurable]] attribute of own accessor property of 'O' is set to false while other attributes are unchanged", + + test: function testcase() { + var obj = {}; + + function get_func() { + return 10; + } + + var resultSetFun = false; + function set_func() { + resultSetFun = true; + } + + Object.defineProperty(obj, "foo", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.freeze(obj); + var res1 = obj.hasOwnProperty("foo"); + delete obj.foo; + var res2 = obj.hasOwnProperty("foo"); + var resultConfigurable = (res1 && res2); + + var resultGetFun = (obj.foo === 10); + obj.foo = 12; + + var resultEnumerable = false; + for (var prop in obj) { + if (prop === "foo") { + resultEnumerable = true; + } + } + + var desc = Object.getOwnPropertyDescriptor(obj, "foo"); + var result = resultConfigurable && resultEnumerable && resultGetFun && resultSetFun; + + return desc.configurable === false && result; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-3.js new file mode 100644 index 0000000000..ca0d081a3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-3.js @@ -0,0 +1,86 @@ +/// 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: "15.2.3.9-2-c-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-3.js", + + description: "Object.freeze - The [[Configurable]] attribute of all own data property of 'O' is set to false while other attributes are unchanged", + + test: function testcase() { + + var obj = {}; + var resultSetFun = false; + + Object.defineProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: true + }); + + function get_func() { + return 10; + } + + function set_func() { + resultSetFun = true; + } + + Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.freeze(obj); + + var res1 = obj.hasOwnProperty("foo2"); + delete obj.foo2; + var res2 = obj.hasOwnProperty("foo2"); + var resultConfigurable = (res1 && res2); + + var resultGetFun = (obj.foo2 === 10); + obj.foo2 = 12; + + var resultEnumerable = false; + for (var prop in obj) { + if (prop === "foo2") { + resultEnumerable = true; + } + } + + var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); + var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); + + var result = resultConfigurable && resultEnumerable && resultGetFun && resultSetFun; + + return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) && result && + desc1.configurable === false && desc1.writable === false && desc2.configurable === false; + + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-4.js new file mode 100644 index 0000000000..a52ddfbdf3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-4.js @@ -0,0 +1,84 @@ +/// 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: "15.2.3.9-2-c-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-c-4.js", + + description: "Object.freeze - all own properties of 'O' are not writable and not configurable", + + test: function testcase() { + var obj = {}; + var resultSetFun = false; + + Object.defineProperty(obj, "foo1", { + value: 10, + writable: false, + enumerable: true, + configurable: false + }); + + function get_func() { + return 10; + } + + function set_func() { + resultSetFun = true; + } + + Object.defineProperty(obj, "foo2", { + get: get_func, + set: set_func, + enumerable: true, + configurable: true + }); + + Object.freeze(obj); + + var res1 = obj.hasOwnProperty("foo2"); + delete obj.foo2; + var res2 = obj.hasOwnProperty("foo2"); + var resultConfigurable = (res1 && res2); + + var resultGetFun = (obj.foo2 === 10); + obj.foo2 = 12; + + var resultEnumerable = false; + for (var prop in obj) { + if (prop === "foo2") { + resultEnumerable = true; + } + } + + var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1"); + var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2"); + + var result = resultConfigurable && resultEnumerable && resultGetFun && resultSetFun; + + return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) && + result && desc1.configurable === false && desc1.writable === false && desc2.configurable === false; + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.defineProperty) && fnExists(Object.getOwnPropertyDescriptor); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-1.js new file mode 100644 index 0000000000..bcdbf6b7ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-d-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-1.js", + + description: "Object.freeze - 'O' is a Function object", + + test: function testcase() { + var funObj = function () { }; + + Object.freeze(funObj); + + return Object.isFrozen(funObj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-2.js new file mode 100644 index 0000000000..b9c1e52f3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-2.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-d-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-2.js", + + description: "Object.freeze - 'O' is an Array object", + + test: function testcase() { + var arrObj = [0, 1]; + + Object.freeze(arrObj); + + return Object.isFrozen(arrObj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-3.js new file mode 100644 index 0000000000..154f0b8fa4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-3.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-d-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-3.js", + + description: "Object.freeze - 'O' is a String object", + + test: function testcase() { + var strObj = new String("a"); + + Object.freeze(strObj); + + return Object.isFrozen(strObj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-4.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-4.js new file mode 100644 index 0000000000..59d080314a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-4.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-d-4", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-4.js", + + description: "Object.freeze - 'O' is a Boolean object", + + test: function testcase() { + var boolObj = new Boolean(false); + + Object.freeze(boolObj); + + return Object.isFrozen(boolObj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-5.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-5.js new file mode 100644 index 0000000000..e2fdfc779b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-5.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-d-5", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-5.js", + + description: "Object.freeze - 'O' is a Number object", + + test: function testcase() { + var numObj = new Number(3); + + Object.freeze(numObj); + + return Object.isFrozen(numObj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-6.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-6.js new file mode 100644 index 0000000000..97fd115cae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-6.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-d-6", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-6.js", + + description: "Object.freeze - 'O' is a Date object", + + test: function testcase() { + var dateObj = new Date(); + + Object.freeze(dateObj); + + return Object.isFrozen(dateObj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-7.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-7.js new file mode 100644 index 0000000000..a68309ad4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-7.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-d-7", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-7.js", + + description: "Object.freeze - 'O' is a RegExp object", + + test: function testcase() { + var regObj = new RegExp(); + + Object.freeze(regObj); + + return Object.isFrozen(regObj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-8.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-8.js new file mode 100644 index 0000000000..1d5ec7e12c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-8.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-2-d-8", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-8.js", + + description: "Object.freeze - 'O' is an Error object", + + test: function testcase() { + var errObj = new SyntaxError(); + + Object.freeze(errObj); + + return Object.isFrozen(errObj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-9.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-9.js new file mode 100644 index 0000000000..c67b22775f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-9.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: "15.2.3.9-2-d-9", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-2-d-9.js", + + description: "Object.freeze - 'O' is the Arguments object", + + test: function testcase() { + var argObj = (function () { return arguments; } ()); + + Object.freeze(argObj); + + return Object.isFrozen(argObj); + + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-3-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-3-1.js new file mode 100644 index 0000000000..97bd735cdc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-3-1.js @@ -0,0 +1,40 @@ +/// 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: "15.2.3.9-3-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-3-1.js", + + description: "Object.freeze - returned object is not extensible", + + test: function testcase() { + + var obj = {}; + Object.freeze(obj); + return !Object.isExtensible(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isExtensible); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-1.js new file mode 100644 index 0000000000..14d19ee5cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-1.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.9-4-1", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-1.js", + + description: "Object.freeze - 'O' is sealed already", + + test: function testcase() { + + var obj = {}; + + obj.foo = 10; // default value of attributes: writable: true, enumerable: true + + Object.seal(obj); + + Object.freeze(obj); + return Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.seal) && fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-2.js new file mode 100644 index 0000000000..260c9fd9d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-2.js @@ -0,0 +1,45 @@ +/// 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: "15.2.3.9-4-2", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-2.js", + + description: "Object.freeze - 'O' is frozen already", + + test: function testcase() { + + var obj = {}; + + obj.foo = 10; // default value of attributes: writable: true, enumerable: true + + Object.freeze(obj); + + Object.freeze(obj); + return Object.isFrozen(obj); + + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-3.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-3.js new file mode 100644 index 0000000000..94802364dc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-3.js @@ -0,0 +1,44 @@ +/// 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: "15.2.3.9-4-3", + + path: "TestCases/chapter15/15.2/15.2.3/15.2.3.9/15.2.3.9-4-3.js", + + description: "Object.freeze - the extensions of 'O' is prevented already", + + test: function testcase() { + + var obj = {}; + + obj.foo = 10; // default value of attributes: writable: true, enumerable: true + + Object.preventExtensions(obj); + + Object.freeze(obj); + return Object.isFrozen(obj); + }, + + precondition: function prereq() { + return fnExists(Object.freeze) && fnExists(Object.isFrozen) && fnExists(Object.preventExtensions); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-1-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-1-1.js new file mode 100644 index 0000000000..6289db0b19 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-1-1.js @@ -0,0 +1,36 @@ +/// 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: "15.2.4.2-1-1", + + path: "TestCases/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-1-1.js", + + description: "Object.prototype.toString - '[object Undefined]' will be returned when 'this' value is undefined", + + test: function testcase() { + return Object.prototype.toString.call(undefined) === "[object Undefined]"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-1-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-1-2.js new file mode 100644 index 0000000000..3b192a8cc2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-1-2.js @@ -0,0 +1,36 @@ +/// 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: "15.2.4.2-1-2", + + path: "TestCases/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-1-2.js", + + description: "Object.prototype.toString - '[object Undefined]' will be returned when 'this' value is undefined", + + test: function testcase() { + return Object.prototype.toString.apply(undefined, []) === "[object Undefined]"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-2-1.js b/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-2-1.js new file mode 100644 index 0000000000..5869873d6e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-2-1.js @@ -0,0 +1,36 @@ +/// 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: "15.2.4.2-2-1", + + path: "TestCases/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-2-1.js", + + description: "Object.prototype.toString - '[object Null]' will be returned when 'this' value is null", + + test: function testcase() { + return Object.prototype.toString.call(null) === "[object Null]"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-2-2.js b/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-2-2.js new file mode 100644 index 0000000000..e45c8be93d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-2-2.js @@ -0,0 +1,36 @@ +/// 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: "15.2.4.2-2-2", + + path: "TestCases/chapter15/15.2/15.2.4/15.2.4.2/15.2.4.2-2-2.js", + + description: "Object.prototype.toString - '[object Null]' will be returned when 'this' value is null", + + test: function testcase() { + return Object.prototype.toString.apply(null, []) === "[object Null]"; + }, + + precondition: function prereq() { + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-1.js new file mode 100644 index 0000000000..5ea6464abd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-1.js @@ -0,0 +1,35 @@ +/// 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: "15.3.2.1-11-1", + +path: "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-1.js", + +description: "Duplicate separate parameter name in Function constructor allowed if body not strict", + +test: function testcase() +{ + Function('a','a','return;'); + return true; + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-3.js new file mode 100644 index 0000000000..25cc5f6df1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-3.js @@ -0,0 +1,33 @@ +/// 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: "15.3.2.1-11-3", + +path: "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-3.js", + +description: "Function constructor may have a formal parameter named 'eval' if body is not strict mode", + +test: function testcase() { + Function('eval', 'return;'); + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-5.js new file mode 100644 index 0000000000..37296f4198 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-5.js @@ -0,0 +1,34 @@ +/// 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: "15.3.2.1-11-5", + +path: "TestCases/chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-5.js", + +description: "Duplicate combined parameter name in Function constructor allowed if body is not strict", + +test: function testcase() +{ + Function('a,a','return;'); + return true; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js new file mode 100644 index 0000000000..98d45995f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js @@ -0,0 +1,44 @@ +/// 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: "15.3.3.2-1", + +path: "TestCases/chapter15/15.3/15.3.3/15.3.3.2/15.3.3.2-1.js", + +description: "Function.length - data property with value 1", + +test: function testcase() { + + var desc = Object.getOwnPropertyDescriptor(Function,"length"); + if(desc.value === 1 && + desc.writable === false && + desc.enumerable === false && + desc.configurable === false) + return true; + + }, + +precondition: function () { + return fnExists(Object.getOwnPropertyDescriptor); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-1.js new file mode 100644 index 0000000000..01c6b40dfd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-1.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: "15.3.4.5.1-4-1", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-1.js", + + description: "[[Call]] - 'F''s [[BoundArgs]] is used as the former part of arguments of calling the [[Call]] internal method of 'F''s [[TargetFunction]] when 'F' is called", + + test: function testcase() { + var func = function (x, y, z) { + return x + y + z; + }; + + var newFunc = Function.prototype.bind.call(func, {}, "a", "b", "c"); + + return newFunc() === "abc"; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-10.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-10.js new file mode 100644 index 0000000000..62af1e1f2b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-10.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.1-4-10", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-10.js", + + description: "[[Call]] - length of parameters of 'target' is 1, length of 'boundArgs' is 0, length of 'ExtraArgs' is 0, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function (x) { + return this === obj && typeof x === "undefined"; + }; + + var newFunc = Function.prototype.bind.call(func, obj); + + return newFunc(); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-11.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-11.js new file mode 100644 index 0000000000..65468c9701 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-11.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.1-4-11", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-11.js", + + description: "[[Call]] - length of parameters of 'target' is 1, length of 'boundArgs' is 0, length of 'ExtraArgs' is 1, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function (x) { + return this === obj && x === 1 && arguments[0] === 1 && arguments.length === 1 && this.prop === "abc"; + }; + + var newFunc = Function.prototype.bind.call(func, obj); + + return newFunc(1); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-12.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-12.js new file mode 100644 index 0000000000..111a89e32b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-12.js @@ -0,0 +1,45 @@ +/// 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: "15.3.4.5.1-4-12", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-12.js", + + description: "[[Call]] - length of parameters of 'target' is 1, length of 'boundArgs' is 0, length of 'ExtraArgs' is 2, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function (x) { + return this === obj && x === 1 && arguments[1] === 2 && + arguments[0] === 1 && arguments.length === 2 && this.prop === "abc"; + }; + + var newFunc = Function.prototype.bind.call(func, obj); + + return newFunc(1, 2); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-13.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-13.js new file mode 100644 index 0000000000..fae62ee47d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-13.js @@ -0,0 +1,45 @@ +/// 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: "15.3.4.5.1-4-13", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-13.js", + + description: "[[Call]] - length of parameters of 'target' is 1, length of 'boundArgs' is 1, length of 'ExtraArgs' is 0, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function (x) { + return this === obj && x === 1 && + arguments[0] === 1 && arguments.length === 1 && this.prop === "abc"; + }; + + var newFunc = Function.prototype.bind.call(func, obj, 1); + + return newFunc(); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-14.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-14.js new file mode 100644 index 0000000000..b5ece02df1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-14.js @@ -0,0 +1,45 @@ +/// 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: "15.3.4.5.1-4-14", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-14.js", + + description: "[[Call]] - length of parameters of 'target' is 1, length of 'boundArgs' is 1, length of 'ExtraArgs' is 1, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function (x) { + return this === obj && x === 1 && arguments[1] === 2 + arguments[0] === 1 && arguments.length === 2 && this.prop === "abc"; + }; + + var newFunc = Function.prototype.bind.call(func, obj, 1); + + return newFunc(2); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-15.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-15.js new file mode 100644 index 0000000000..05f337643c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-15.js @@ -0,0 +1,45 @@ +/// 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: "15.3.4.5.1-4-15", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-15.js", + + description: "[[Call]] - length of parameters of 'target' is 1, length of 'boundArgs' is 2, length of 'ExtraArgs' is 0, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function (x) { + return this === obj && x === 1 && arguments[1] === 2 && + arguments[0] === 1 && arguments.length === 2 && this.prop === "abc"; + }; + + var newFunc = Function.prototype.bind.call(func, obj, 1, 2); + + return newFunc(); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-2.js new file mode 100644 index 0000000000..0caf2022c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-2.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.1-4-2", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-2.js", + + description: "[[Call]] - 'F''s [[BoundThis]] is used as the 'this' value of calling the [[Call]] internal method of 'F''s [[TargetFunction]] when 'F' is called", + + test: function testcase() { + var obj = { "prop": "a" }; + + var func = function () { + return this; + }; + + var newFunc = Function.prototype.bind.call(func, obj); + + return newFunc() === obj; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-3.js new file mode 100644 index 0000000000..272ebb2004 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-3.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: "15.3.4.5.1-4-3", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-3.js", + + description: "[[Call]] - the provided arguments is used as the latter part of arguments of calling the [[Call]] internal method of 'F''s [[TargetFunction]] when 'F' is called", + + test: function testcase() { + var func = function (x, y, z) { + return z; + }; + + var newFunc = Function.prototype.bind.call(func, {}, "a", "b"); + + return newFunc("c") === "c"; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-4.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-4.js new file mode 100644 index 0000000000..d64b4ed77b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-4.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: "15.3.4.5.1-4-4", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-4.js", + + description: "[[Call]] - length of parameters of 'target' is 0, length of 'boundArgs' is 0, length of 'ExtraArgs' is 0, and without 'boundThis'", + + test: function testcase() { + var func = function () { + return arguments.length === 0; + }; + + var newFunc = Function.prototype.bind.call(func); + + return newFunc(); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-5.js new file mode 100644 index 0000000000..cdd59173a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-5.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: "15.3.4.5.1-4-5", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-5.js", + + description: "[[Call]] - length of parameters of 'target' is 0, length of 'boundArgs' is 0, length of 'ExtraArgs' is 1, and without 'boundThis'", + + test: function testcase() { + var func = function () { + return arguments[0] === 1; + }; + + var newFunc = Function.prototype.bind.call(func); + + return newFunc(1); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-6.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-6.js new file mode 100644 index 0000000000..52c1fa62b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-6.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.1-4-6", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-6.js", + + description: "[[Call]] - length of parameters of 'target' is 0, length of 'boundArgs' is 0, length of 'ExtraArgs' is 0, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function () { + return this === obj && arguments.length === 0; + }; + + var newFunc = Function.prototype.bind.call(func, obj); + + return newFunc(); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-7.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-7.js new file mode 100644 index 0000000000..5beeeb6f39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-7.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.1-4-7", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-7.js", + + description: "[[Call]] - length of parameters of 'target' is 0, length of 'boundArgs' is 1, length of 'ExtraArgs' is 0, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function () { + return this === obj && arguments[0] === 1; + }; + + var newFunc = Function.prototype.bind.call(func, obj, 1); + + return newFunc(); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-8.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-8.js new file mode 100644 index 0000000000..d4cad8aff1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-8.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.1-4-8", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-8.js", + + description: "[[Call]] - length of parameters of 'target' is 0, length of 'boundArgs' is 0, length of 'ExtraArgs' is 1, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function () { + return this === obj && arguments[0] === 1; + }; + + var newFunc = Function.prototype.bind.call(func, obj); + + return newFunc(1); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-9.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-9.js new file mode 100644 index 0000000000..006b925460 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.1/15.3.4.5.1-4-9.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.1-4-9", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.1/15.3.4.5.1-4-9.js", + + description: "[[Call]] - length of parameters of 'target' is 0, length of 'boundArgs' is 1, length of 'ExtraArgs' is 1, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + var func = function () { + return this === obj && arguments[0] === 1 && arguments[1] === 2; + }; + + var newFunc = Function.prototype.bind.call(func, obj, 1); + + return newFunc(2); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-1.js new file mode 100644 index 0000000000..e85ba665a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-1.js @@ -0,0 +1,48 @@ +/// 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: "15.3.4.5.2-4-1", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-1.js", + + description: "[[Construct]] - 'F''s [[BoundArgs]] is used as the former part of arguments of calling the [[Construct]] internal method of 'F''s [[TargetFunction]] when 'F' is called as constructor", + + test: function testcase() { + var func = function (x, y, z) { + var objResult = {}; + objResult.returnValue = x + y + z; + objResult.returnVerifyResult = arguments[0] === "a" && arguments.length === 3; + return objResult; + }; + + var NewFunc = Function.prototype.bind.call(func, {}, "a", "b", "c"); + + var newInstance = new NewFunc(); + + return newInstance.hasOwnProperty("returnValue") && newInstance.returnValue === "abc" && + newInstance.hasOwnProperty("returnVerifyResult") && newInstance.returnVerifyResult === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-10.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-10.js new file mode 100644 index 0000000000..b0a1c14fc5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-10.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-10", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-10.js", + + description: "[[Construct]] - length of parameters of 'target' is 1, length of 'boundArgs' is 0, length of 'ExtraArgs' is 1", + + test: function testcase() { + var func = function (x) { + return new Boolean(arguments.length === 1 && x === 1 && arguments[0] === 1); + }; + + var NewFunc = Function.prototype.bind.call(func, {}); + + var newInstance = new NewFunc(1); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-11.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-11.js new file mode 100644 index 0000000000..6113fabf3c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-11.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-11", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-11.js", + + description: "[[Construct]] - length of parameters of 'target' is 1, length of 'boundArgs' is 0, length of 'ExtraArgs' is 2", + + test: function testcase() { + var func = function (x) { + return new Boolean(arguments.length === 2 && x === 1 && arguments[1] === 2 && arguments[0] === 1); + }; + + var NewFunc = Function.prototype.bind.call(func, {}); + + var newInstance = new NewFunc(1, 2); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-12.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-12.js new file mode 100644 index 0000000000..97b54b9b88 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-12.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-12", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-12.js", + + description: "[[Construct]] - length of parameters of 'target' is 1, length of 'boundArgs' is 1, length of 'ExtraArgs' is 0", + + test: function testcase() { + var func = function (x) { + return new Boolean(arguments.length === 1 && x === 1 && arguments[0] === 1); + }; + + var NewFunc = Function.prototype.bind.call(func, {}, 1); + + var newInstance = new NewFunc(); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-13.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-13.js new file mode 100644 index 0000000000..c1f885dfc0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-13.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-13", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-13.js", + + description: "[[Construct]] - length of parameters of 'target' is 1, length of 'boundArgs' is 1, length of 'ExtraArgs' is 1", + + test: function testcase() { + var func = function (x) { + return new Boolean(arguments.length === 2 && x === 1 && arguments[1] === 2 && arguments[0] === 1); + }; + + var NewFunc = Function.prototype.bind.call(func, {}, 1); + + var newInstance = new NewFunc(2); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-14.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-14.js new file mode 100644 index 0000000000..e6ac9ea24c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-14.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-14", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-14.js", + + description: "[[Construct]] - length of parameters of 'target' is 1, length of 'boundArgs' is 2, length of 'ExtraArgs' is 0", + + test: function testcase() { + var func = function (x) { + return new Boolean(arguments.length === 2 && x === 1 && arguments[1] === 2 && arguments[0] === 1); + }; + + var NewFunc = Function.prototype.bind.call(func, {}, 1, 2); + + var newInstance = new NewFunc(); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-2.js new file mode 100644 index 0000000000..f689d2e7ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-2.js @@ -0,0 +1,48 @@ +/// 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: "15.3.4.5.2-4-2", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-2.js", + + description: "[[Construct]] - the provided arguments is used as the latter part of arguments of calling the [[Construct]] internal method of 'F''s [[TargetFunction]] when 'F' is called as constructor", + + test: function testcase() { + var func = function (x, y, z) { + var objResult = {}; + objResult.returnValue = x + y + z; + objResult.returnVerifyResult = arguments[0] === "a" && arguments.length === 3; + return objResult; + }; + + var NewFunc = Function.prototype.bind.call(func, {}); + + var newInstance = new NewFunc("a", "b", "c"); + + return newInstance.hasOwnProperty("returnValue") && newInstance.returnValue === "abc" && + newInstance.hasOwnProperty("returnVerifyResult") && newInstance.returnVerifyResult === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-3.js new file mode 100644 index 0000000000..c017e3a1ab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-3.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-3", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-3.js", + + description: "[[Construct]] - length of parameters of 'target' is 0, length of 'boundArgs' is 0, length of 'ExtraArgs' is 0, and without 'boundThis'", + + test: function testcase() { + var func = function () { + return new Boolean(arguments.length === 0); + }; + + var NewFunc = Function.prototype.bind.call(func); + + var newInstance = new NewFunc(); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-4.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-4.js new file mode 100644 index 0000000000..f5014179f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-4.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-4", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-4.js", + + description: "[[Construct]] - length of parameters of 'target' is 0, length of 'boundArgs' is 0, length of 'ExtraArgs' is 1, and without 'boundThis'", + + test: function testcase() { + var func = function () { + return new Boolean(arguments[0] === 1 && arguments.length === 1); + }; + + var NewFunc = Function.prototype.bind.call(func); + + var newInstance = new NewFunc(1); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-5.js new file mode 100644 index 0000000000..82fef551c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-5.js @@ -0,0 +1,52 @@ +/// 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: "15.3.4.5.2-4-5", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-5.js", + + description: "[[Construct]] - length of parameters of 'target' is 0, length of 'boundArgs' is 0, length of 'ExtraArgs' is 0, and with 'boundThis'", + + test: function testcase() { + var obj = { prop: "abc" }; + + try { + Object.prototype.verifyThis = "verifyThis"; + var func = function () { + return new Boolean(arguments.length === 0 && Object.prototype.toString.call(this) === "[object Object]" && + this.verifyThis === "verifyThis"); + }; + + var NewFunc = Function.prototype.bind.call(func, obj); + + var newInstance = new NewFunc(); + + return newInstance.valueOf(); + } finally { + delete Object.prototype.verifyThis; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-6.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-6.js new file mode 100644 index 0000000000..6d32855f8c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-6.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-6", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-6.js", + + description: "[[Construct]] - length of parameters of 'target' is 0, length of 'boundArgs' is 1, length of 'ExtraArgs' is 0", + + test: function testcase() { + var func = function () { + return new Boolean(arguments.length === 1 && arguments[0] === 1); + }; + + var NewFunc = Function.prototype.bind.call(func, {}, 1); + + var newInstance = new NewFunc(); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-7.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-7.js new file mode 100644 index 0000000000..8ecef91357 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-7.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-7", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-7.js", + + description: "[[Construct]] - length of parameters of 'target' is 0, length of 'boundArgs' is 0, length of 'ExtraArgs' is 1", + + test: function testcase() { + var func = function () { + return new Boolean(arguments.length === 1 && arguments[0] === 1); + }; + + var NewFunc = Function.prototype.bind.call(func, {}); + + var newInstance = new NewFunc(1); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-8.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-8.js new file mode 100644 index 0000000000..140b3bf262 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-8.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-8", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-8.js", + + description: "[[Construct]] - length of parameters of 'target' is 0, length of 'boundArgs' is 1, length of 'ExtraArgs' is 1", + + test: function testcase() { + var func = function () { + return new Boolean(arguments.length === 2 && arguments[0] === 1 && arguments[1] === 2); + }; + + var NewFunc = Function.prototype.bind.call(func, {}, 1); + + var newInstance = new NewFunc(2); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-9.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-9.js new file mode 100644 index 0000000000..6fee87b925 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5.2/15.3.4.5.2-4-9.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5.2-4-9", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5.2/15.3.4.5.2-4-9.js", + + description: "[[Construct]] - length of parameters of 'target' is 1, length of 'boundArgs' is 0, length of 'ExtraArgs' is 0", + + test: function testcase() { + var func = function (x) { + return new Boolean(arguments.length === 0 && typeof x === "undefined"); + }; + + var NewFunc = Function.prototype.bind.call(func, {}); + + var newInstance = new NewFunc(); + + return newInstance.valueOf() === true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-0-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-0-1.js new file mode 100644 index 0000000000..192fd499fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-0-1.js @@ -0,0 +1,36 @@ +/// 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: "15.3.4.5-0-1", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-0-1.js", + +description: "Function.prototype.bind must exist as a function", + +test: function testcase() { + var f = Function.prototype.bind; + + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-0-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-0-2.js new file mode 100644 index 0000000000..834b9cb088 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.3.4.5-0-2", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-0-2.js", + +description: "Function.prototype.bind must exist as a function taking 1 parameter", + +test: function testcase() { + if (Function.prototype.bind.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-10-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-10-1.js new file mode 100644 index 0000000000..5cd7efcf06 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-10-1.js @@ -0,0 +1,40 @@ +/// 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: "15.3.4.5-10-1", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-10-1.js", + + description: "Function.prototype.bind - internal property [[Class]] of 'F' is set as Function", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + return Object.prototype.toString.call(obj) === "[object Function]"; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-11-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-11-1.js new file mode 100644 index 0000000000..fec378dc5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-11-1.js @@ -0,0 +1,45 @@ +/// 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: "15.3.4.5-11-1", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-11-1.js", + + description: "Function.prototype.bind - internal property [[Prototype]] of 'F' is set as Function.prototype", + + test: function testcase() { + + var foo = function () { }; + try { + Function.prototype.property = 12; + var obj = foo.bind({}); + + return obj.property === 12; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-1.js new file mode 100644 index 0000000000..43bcd34327 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-1.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: "15.3.4.5-13.b-1", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-1.js", + +description: "Function.prototype.bind, bound fn has a 'length' own property", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + if (bf.hasOwnProperty('length')) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-2.js new file mode 100644 index 0000000000..24cac31330 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-2.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: "15.3.4.5-13.b-2", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-2.js", + +description: "Function.prototype.bind, 'length' set to remaining number of expected args", + +test: function testcase() { + function foo(x, y) { } + var o = {}; + + var bf = foo.bind(o); + if (bf.length === 2) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-3.js new file mode 100644 index 0000000000..4a36dca376 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-3.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: "15.3.4.5-13.b-3", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-3.js", + +description: "Function.prototype.bind, 'length' set to remaining number of expected args (all args prefilled)", + +test: function testcase() { + function foo(x, y) { } + var o = {}; + + var bf = foo.bind(o, 42, 101); + if (bf.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-4.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-4.js new file mode 100644 index 0000000000..816abf5fd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-4.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: "15.3.4.5-13.b-4", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-4.js", + +description: "Function.prototype.bind, 'length' set to remaining number of expected args (target takes 0 args)", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + if (bf.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-5.js new file mode 100644 index 0000000000..bf2ada7a8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-5.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: "15.3.4.5-13.b-5", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-5.js", + +description: "Function.prototype.bind, 'length' set to remaining number of expected args (target provided extra args)", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o, 42); + if (bf.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-6.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-6.js new file mode 100644 index 0000000000..66b1ad12bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-6.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: "15.3.4.5-13.b-6", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-13.b-6.js", + +description: "Function.prototype.bind, 'length' set to remaining number of expected args", + +test: function testcase() { + function foo(x, y) { } + var o = {}; + + var bf = foo.bind(o, 42); + if (bf.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-1.js new file mode 100644 index 0000000000..93243c44d5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-1.js @@ -0,0 +1,45 @@ +/// 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: "15.3.4.5-15-1", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-1.js", + +description: "Function.prototype.bind, 'length' is a data valued own property", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + var desc = Object.getOwnPropertyDescriptor(bf, 'length'); + if (desc.hasOwnProperty('value') === true && + desc.hasOwnProperty('get') === false && + desc.hasOwnProperty('set') === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-2.js new file mode 100644 index 0000000000..bea5e9445c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-2.js @@ -0,0 +1,46 @@ +/// 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: "15.3.4.5-15-2", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-2.js", + +description: "Function.prototype.bind, 'length' is a data valued own property with default attributes (false)", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + var desc = Object.getOwnPropertyDescriptor(bf, 'length'); + if (desc.value === 0 && + desc.enumerable === false && + desc.writable === false && + desc.configurable == false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-3.js new file mode 100644 index 0000000000..3873607c10 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-3.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5-15-3", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-3.js", + + description: "Function.prototype.bind - The [[Writable]] attribute of length property in F set as false", + + test: function testcase() { + + var canWritable = false; + var hasProperty = false; + function foo() { } + var obj = foo.bind({}); + hasProperty = obj.hasOwnProperty("length"); + obj.length = 100; + canWritable = (obj.length === 100); + return hasProperty && !canWritable; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-4.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-4.js new file mode 100644 index 0000000000..dc2c4a9731 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-4.js @@ -0,0 +1,47 @@ +/// 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: "15.3.4.5-15-4", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-4.js", + + description: "Function.prototype.bind - The [[Enumerable]] attribute of length property in F set as false", + + test: function testcase() { + + var canEnumerable = false; + var hasProperty = false; + function foo() { } + var obj = foo.bind({}); + hasProperty = obj.hasOwnProperty("length"); + for (var prop in obj) { + if (prop === "length") { + canEnumerable = true; + } + } + return hasProperty && !canEnumerable; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-5.js new file mode 100644 index 0000000000..88f5e2bc5b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-5.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5-15-5", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-15-5.js", + + description: "Function.prototype.bind - The [[Configurable]] attribute of length property in F set as false", + + test: function testcase() { + + var canConfigurable = false; + var hasProperty = false; + function foo() { } + var obj = foo.bind({}); + hasProperty = obj.hasOwnProperty("length"); + delete obj.caller; + canConfigurable = !obj.hasOwnProperty("length"); + return hasProperty && !canConfigurable; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-16-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-16-1.js new file mode 100644 index 0000000000..439ff83d9e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-16-1.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: "15.3.4.5-16-1", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-16-1.js", + +description: "Function.prototype.bind, [[Extensible]] of the bound fn is true", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + var ex = Object.isExtensible(bf); + if (ex === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-16-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-16-2.js new file mode 100644 index 0000000000..2c4b204be8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-16-2.js @@ -0,0 +1,40 @@ +/// 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: "15.3.4.5-16-2", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-16-2.js", + + description: "Function.prototype.bind - The [[Extensible]] attribute of internal property in F set as true", + + test: function testcase() { + + function foo() { } + var obj = foo.bind({}); + obj.property = 12; + return obj.hasOwnProperty("property"); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-1.js new file mode 100644 index 0000000000..53233fd7aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-1.js @@ -0,0 +1,51 @@ +/// 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. + +/* +15.3.4.5 step 2 specifies that a TypeError must be thrown if the Target is not callable. +*/ + +ES5Harness.registerTest( { +id: "15.3.4.5-2-1", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-1.js", + +description: "Function.prototype.bind throws TypeError if the Target is not callable (but an instance of Function)", + +test: function testcase() { + foo.prototype = Function.prototype; + // dummy function + function foo() {} + var f = new foo(); + + try { + f.bind(); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-10.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-10.js new file mode 100644 index 0000000000..bf20ad6b7a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-10.js @@ -0,0 +1,38 @@ +/// 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: "15.3.4.5-2-10", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-10.js", + + description: "Function.prototype.bind throws TypeError if 'Target' is undefined", + + test: function testcase() { + try { + Function.prototype.bind.call(undefined); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-11.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-11.js new file mode 100644 index 0000000000..a236a9efe0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-11.js @@ -0,0 +1,38 @@ +/// 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: "15.3.4.5-2-11", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-11.js", + + description: "Function.prototype.bind throws TypeError if 'Target' is NULL", + + test: function testcase() { + try { + Function.prototype.bind.call(null); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-12.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-12.js new file mode 100644 index 0000000000..513b7ef651 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-12.js @@ -0,0 +1,38 @@ +/// 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: "15.3.4.5-2-12", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-12.js", + + description: "Function.prototype.bind throws TypeError if 'Target' is a boolean", + + test: function testcase() { + try { + Function.prototype.bind.call(true); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-13.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-13.js new file mode 100644 index 0000000000..d40201de65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-13.js @@ -0,0 +1,38 @@ +/// 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: "15.3.4.5-2-13", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-13.js", + + description: "Function.prototype.bind throws TypeError if 'Target' is a number", + + test: function testcase() { + try { + Function.prototype.bind.call(5); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-14.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-14.js new file mode 100644 index 0000000000..ad7716c3dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-14.js @@ -0,0 +1,38 @@ +/// 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: "15.3.4.5-2-14", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-14.js", + + description: "Function.prototype.bind throws TypeError if 'Target' is a string", + + test: function testcase() { + try { + Function.prototype.bind.call("abc"); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-15.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-15.js new file mode 100644 index 0000000000..841fe5e5b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-15.js @@ -0,0 +1,38 @@ +/// 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: "15.3.4.5-2-15", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-15.js", + + description: "Function.prototype.bind throws TypeError if 'Target' is Object without Call internal method", + + test: function testcase() { + try { + Function.prototype.bind.call({}); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-16.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-16.js new file mode 100644 index 0000000000..f4a5b47524 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-16.js @@ -0,0 +1,39 @@ +/// 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: "15.3.4.5-2-16", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-16.js", + + description: "Function.prototype.bind - 'Target' is a function", + + test: function testcase() { + function testFunc() {} + try { + testFunc.bind(); + return true; + } catch (e) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-2.js new file mode 100644 index 0000000000..987d566ada --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-2.js @@ -0,0 +1,51 @@ +/// 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. + +/* +15.3.4.5 step 2 specifies that a TypeError must be thrown if the Target is not callable. +*/ + +ES5Harness.registerTest( { +id: "15.3.4.5-2-2", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-2.js", + +description: "Function.prototype.bind throws TypeError if the Target is not callable (bind attached to object)", + +test: function testcase() { + // dummy function + function foo() {} + var f = new foo(); + f.bind = Function.prototype.bind; + + try { + f.bind(); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-3.js new file mode 100644 index 0000000000..6f924d7b86 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-3.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. + +/* +15.3.4.5 step 2 specifies that a TypeError must be thrown if the Target is not callable. +*/ + +ES5Harness.registerTest( { +id: "15.3.4.5-2-3", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-3.js", + +description: "Function.prototype.bind allows Target to be a constructor (Number)", + +test: function testcase() { + var bnc = Number.bind(null); + var n = bnc(42); + if (n === 42) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-4.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-4.js new file mode 100644 index 0000000000..813c7fdd1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-4.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. + +/* +15.3.4.5 step 2 specifies that a TypeError must be thrown if the Target is not callable. +*/ + +ES5Harness.registerTest( { +id: "15.3.4.5-2-4", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-4.js", + +description: "Function.prototype.bind allows Target to be a constructor (String)", + +test: function testcase() { + var bsc = String.bind(null); + var s = bsc("hello world"); + if (s === "hello world") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-5.js new file mode 100644 index 0000000000..467766721b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-5.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. + +/* +15.3.4.5 step 2 specifies that a TypeError must be thrown if the Target is not callable. +*/ + +ES5Harness.registerTest( { +id: "15.3.4.5-2-5", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-5.js", + +description: "Function.prototype.bind allows Target to be a constructor (Boolean)", + +test: function testcase() { + var bbc = Boolean.bind(null); + var b = bbc(true); + if (b === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-6.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-6.js new file mode 100644 index 0000000000..097dc860dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-6.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. + +/* +15.3.4.5 step 2 specifies that a TypeError must be thrown if the Target is not callable. +*/ + +ES5Harness.registerTest( { +id: "15.3.4.5-2-6", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-6.js", + +description: "Function.prototype.bind allows Target to be a constructor (Object)", + +test: function testcase() { + var boc = Object.bind(null); + var o = boc(42); + if (o == 42) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-7.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-7.js new file mode 100644 index 0000000000..fbb108e5d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-7.js @@ -0,0 +1,46 @@ +/// 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. + +/* +15.3.4.5 step 2 specifies that a TypeError must be thrown if the Target is not callable. +*/ + +ES5Harness.registerTest( { +id: "15.3.4.5-2-7", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-7.js", + +description: "Function.prototype.bind throws TypeError if the Target is not callable (JSON)", + +test: function testcase() { + try { + JSON.bind(); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-8.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-8.js new file mode 100644 index 0000000000..b1294ee3d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-8.js @@ -0,0 +1,44 @@ +/// 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. + +/* +15.3.4.5 step 2 specifies that a TypeError must be thrown if the Target is not callable. +*/ + +ES5Harness.registerTest({ + id: "15.3.4.5-2-8", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-8.js", + + description: "Function.prototype.bind allows Target to be a constructor (Array)", + + test: function testcase() { + var bac = Array.bind(null); + var a = bac(42); + a.prop = "verifyPropertyExist"; + a[41] = 41; + + return a.prop === "verifyPropertyExist" && a[41] === 41 && a.length === 42; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-9.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-9.js new file mode 100644 index 0000000000..4ac76eac10 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-9.js @@ -0,0 +1,40 @@ +/// 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: "15.3.4.5-2-9", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-2-9.js", + +description: "Function.prototype.bind allows Target to be a constructor (Date)", + +test: function testcase() { + var bdc = Date.bind(null); + var s = bdc(0, 0, 0); + if (typeof(s) === 'string') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-1.js new file mode 100644 index 0000000000..eff863057c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-1.js @@ -0,0 +1,39 @@ +/// 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: "15.3.4.5-20-1", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-1.js", + + description: "Function.prototype.bind - 'caller' is defined as one property of 'F'", + + test: function testcase() { + + function foo() { } + var obj = foo.bind({}); + return obj.hasOwnProperty("caller"); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-2.js new file mode 100644 index 0000000000..e16f5a1a40 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-2.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: "15.3.4.5-20-2", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-2.js", + + description: "Function.prototype.bind - [[Get]] attribute of 'caller' property in 'F' is thrower", + + test: function testcase() { + + function foo() { } + var obj = foo.bind({}); + try { + return obj.caller && false; + } catch (ex) { + return (ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-3.js new file mode 100644 index 0000000000..58cd13a209 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-3.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5-20-3", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-3.js", + + description: "Function.prototype.bind - [[Set]] attribute of 'caller' property in 'F' is thrower", + + test: function testcase() { + + function foo() { } + var obj = foo.bind({}); + try { + obj.caller = 12; + return false; + } catch (ex) { + return (ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-4.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-4.js new file mode 100644 index 0000000000..29c4756f2c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-4.js @@ -0,0 +1,47 @@ +/// 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: "15.3.4.5-20-4", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-4.js", + + description: "Function.prototype.bind - The [[Enumerable]] attribute of 'caller' property in 'F' is false", + + test: function testcase() { + + var canEnumerable = false; + var hasProperty = false; + function foo() { } + var obj = foo.bind({}); + hasProperty = obj.hasOwnProperty("caller"); + for (var prop in obj) { + if (prop === "caller") { + canEnumerable = true; + } + } + return hasProperty && !canEnumerable; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-5.js new file mode 100644 index 0000000000..ad81acdc7a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-5.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5-20-5", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-20-5.js", + + description: "Function.prototype.bind - The [[Configurable]] attribute of 'caller' property in 'F' is false", + + test: function testcase() { + + var canConfigurable = false; + var hasProperty = false; + function foo() { } + var obj = foo.bind({}); + hasProperty = obj.hasOwnProperty("caller"); + delete obj.caller; + canConfigurable = obj.hasOwnProperty("caller"); + return hasProperty && canConfigurable; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-1.js new file mode 100644 index 0000000000..0c56348a0b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-1.js @@ -0,0 +1,39 @@ +/// 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: "15.3.4.5-21-1", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-1.js", + + description: "Function.prototype.bind - 'arguments' is defined as one property of 'F'", + + test: function testcase() { + + function foo() { } + var obj = foo.bind({}); + return obj.hasOwnProperty("arguments"); + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-2.js new file mode 100644 index 0000000000..9a78db661f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-2.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: "15.3.4.5-21-2", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-2.js", + + description: "Function.prototype.bind - [[Get]] attribute of 'arguments' property in 'F' is thrower", + + test: function testcase() { + + function foo() { } + var obj = foo.bind({}); + try { + return obj.arguments && false; + } catch (ex) { + return (ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-3.js new file mode 100644 index 0000000000..f60e724021 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-3.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5-21-3", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-3.js", + + description: "Function.prototype.bind - [[Set]] attribute of 'arguments' property in 'F' is thrower", + + test: function testcase() { + + function foo() { } + var obj = foo.bind({}); + try { + obj.arguments = 12; + return false; + } catch (ex) { + return (ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-4.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-4.js new file mode 100644 index 0000000000..2181677bd7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-4.js @@ -0,0 +1,47 @@ +/// 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: "15.3.4.5-21-4", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-4.js", + + description: "Function.prototype.bind - The [[Enumerable]] attribute of 'arguments' property in 'F' is false", + + test: function testcase() { + + var canEnumerable = false; + var hasProperty = false; + function foo() { } + var obj = foo.bind({}); + hasProperty = obj.hasOwnProperty("arguments"); + for (var prop in obj) { + if (prop === "arguments") { + canEnumerable = true; + } + } + return hasProperty && !canEnumerable; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-5.js new file mode 100644 index 0000000000..8c0f6a04a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-5.js @@ -0,0 +1,44 @@ +/// 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: "15.3.4.5-21-5", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-21-5.js", + + description: "Function.prototype.bind - The [[Configurable]] attribute of 'arguments' property in 'F' is false", + + test: function testcase() { + + var canConfigurable = false; + var hasProperty = false; + function foo() { } + var obj = foo.bind({}); + hasProperty = obj.hasOwnProperty("arguments"); + delete obj.caller; + canConfigurable = !obj.hasOwnProperty("arguments"); + return hasProperty && !canConfigurable; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-3-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-3-1.js new file mode 100644 index 0000000000..7af8252e92 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-3-1.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: "15.3.4.5-3-1", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-3-1.js", + + description: "Function.prototype.bind - each arg is defined in A in list order", + + test: function testcase() { + + var foo = function (x, y) { + return new Boolean((x + y) === "ab" && arguments[0] === "a" && + arguments[1] === "b" && arguments.length === 2); + }; + + var obj = foo.bind({}, "a", "b"); + return obj()==true; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-1.js new file mode 100644 index 0000000000..ec33c66b58 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-1.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: "15.3.4.5-6-1", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-1.js", + + description: "Function.prototype.bind - F can get own data property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + obj.property = 12; + return obj.property === 12; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-10.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-10.js new file mode 100644 index 0000000000..84b6cf94d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-10.js @@ -0,0 +1,54 @@ +/// 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: "15.3.4.5-6-10", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-10.js", + + description: "Function.prototype.bind - F can get own accessor property without a get function that overrides an inherited accessor property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + try { + Object.defineProperty(Function.prototype, "property", { + get: function () { + return 3; + }, + configurable: true + }); + + Object.defineProperty(obj, "property", { + set: function () { } + }); + return typeof (obj.property) === "undefined"; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-11.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-11.js new file mode 100644 index 0000000000..08f6d7fc2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-11.js @@ -0,0 +1,48 @@ +/// 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: "15.3.4.5-6-11", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-11.js", + + description: "Function.prototype.bind - F can get inherited accessor property without a get function", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + try { + Object.defineProperty(Function.prototype, "property", { + set: function () { }, + configurable: true + }); + return typeof (obj.property) === "undefined"; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-12.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-12.js new file mode 100644 index 0000000000..0707a88b3a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-12.js @@ -0,0 +1,40 @@ +/// 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: "15.3.4.5-6-12", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-12.js", + + description: "Function.prototype.bind - F cannot get property which doesn't exist", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + return typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-2.js new file mode 100644 index 0000000000..e7820933a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-2.js @@ -0,0 +1,45 @@ +/// 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: "15.3.4.5-6-2", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-2.js", + + description: "Function.prototype.bind - F can get inherited data property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + try { + Function.prototype.property = 12; + return obj.property === 12; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-3.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-3.js new file mode 100644 index 0000000000..c572e7a847 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-3.js @@ -0,0 +1,47 @@ +/// 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: "15.3.4.5-6-3", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-3.js", + + description: "Function.prototype.bind - F can get own data property that overrides an inherited data property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + + try { + Function.prototype.property = 3; + obj.property = 12; + return obj.property === 12; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-4.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-4.js new file mode 100644 index 0000000000..17f47a7fc1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-4.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: "15.3.4.5-6-4", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-4.js", + + description: "Function.prototype.bind - F can get own data property that overrides an inherited accessor property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + try { + Object.defineProperty(Function.prototype, "property", { + get: function () { + return 3; + }, + configurable: true + }); + + Object.defineProperty(obj, "property", { + value: 12 + }); + + return obj.property === 12; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-5.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-5.js new file mode 100644 index 0000000000..1d1fbc31d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-5.js @@ -0,0 +1,45 @@ +/// 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: "15.3.4.5-6-5", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-5.js", + + description: "Function.prototype.bind - F can get own accessor property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + Object.defineProperty(obj, "property", { + get: function () { + return 12; + } + }); + return obj.property === 12; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-6.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-6.js new file mode 100644 index 0000000000..c03e0c7a0f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-6.js @@ -0,0 +1,50 @@ +/// 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: "15.3.4.5-6-6", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-6.js", + + description: "Function.prototype.bind - F can get inherited accessor property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + try { + Object.defineProperty(Function.prototype, "property", { + get: function () { + return 12; + }, + configurable: true + }); + return obj.property === 12; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-7.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-7.js new file mode 100644 index 0000000000..8eb6b7fed6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-7.js @@ -0,0 +1,50 @@ +/// 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: "15.3.4.5-6-7", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-7.js", + + description: "Function.prototype.bind - F can get own accessor property that overrides an inherited data property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + try { + Function.prototype.property = 3; + Object.defineProperty(obj, "property", { + get: function () { + return 12; + } + }); + return obj.property === 12; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-8.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-8.js new file mode 100644 index 0000000000..eb4e9e3cb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-8.js @@ -0,0 +1,56 @@ +/// 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: "15.3.4.5-6-8", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-8.js", + + description: "Function.prototype.bind - F can get own accessor property that overrides an inherited accessor property", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + try { + Object.defineProperty(Function.prototype, "property", { + get: function () { + return 3; + }, + configurable: true + }); + + Object.defineProperty(obj, "property", { + get: function () { + return 12; + } + }); + return obj.property === 12; + } finally { + delete Function.prototype.property; + } + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-9.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-9.js new file mode 100644 index 0000000000..eb33d9093a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-9.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: "15.3.4.5-6-9", + + path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-6-9.js", + + description: "Function.prototype.bind - F can get own accessor property without a get function", + + test: function testcase() { + + var foo = function () { }; + + var obj = foo.bind({}); + Object.defineProperty(obj, "property", { + set: function () {} + }); + return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-8-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-8-1.js new file mode 100644 index 0000000000..5593e8b191 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-8-1.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: "15.3.4.5-8-1", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-8-1.js", + +description: "Function.prototype.bind, type of bound function must be 'function'", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + if (typeof(bf) === 'function') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-8-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-8-2.js new file mode 100644 index 0000000000..805530450c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-8-2.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: "15.3.4.5-8-2", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-8-2.js", + +description: "Function.prototype.bind, [[Class]] of bound function must be 'Function'", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + var s = Object.prototype.toString.call(bf); + if (s === '[object Function]') { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-9-1.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-9-1.js new file mode 100644 index 0000000000..62daec1187 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-9-1.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: "15.3.4.5-9-1", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-9-1.js", + +description: "Function.prototype.bind, [[Prototype]] is Function.prototype", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + if (Function.prototype.isPrototypeOf(bf)) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-9-2.js b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-9-2.js new file mode 100644 index 0000000000..5e85d51bf6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-9-2.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: "15.3.4.5-9-2", + +path: "TestCases/chapter15/15.3/15.3.4/15.3.4.5/15.3.4.5-9-2.js", + +description: "Function.prototype.bind, [[Prototype]] is Function.prototype (using getPrototypeOf)", + +test: function testcase() { + function foo() { } + var o = {}; + + var bf = foo.bind(o); + if (Object.getPrototypeOf(bf) === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Function.prototype.bind) && fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-1.js new file mode 100644 index 0000000000..dd8b9e0c0f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.4.3.2-0-1", + +path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-1.js", + +description: "Array.isArray must exist as a function", + +test: function testcase() { + var f = Array.isArray; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-2.js new file mode 100644 index 0000000000..0e631e9b39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.4.3.2-0-2", + +path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-2.js", + +description: "Array.isArray must exist as a function taking 1 parameter", + +test: function testcase() { + if (Array.isArray.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-3.js new file mode 100644 index 0000000000..33e4bee713 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-3.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-0-3", + +path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-3.js", + +description: "Array.isArray return true if its argument is an Array", + +test: function testcase() { + var a = []; + var b = Array.isArray(a); + if (b === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-4.js new file mode 100644 index 0000000000..24c94c2f51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.3.2-0-4", + +path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-4.js", + +description: "Array.isArray return false if its argument is not an Array", + +test: function testcase() { + var b_num = Array.isArray(42); + var b_undef = Array.isArray(undefined); + var b_bool = Array.isArray(true); + var b_str = Array.isArray("abc"); + var b_obj = Array.isArray({}); + var b_null = Array.isArray(null); + + if (b_num === false && + b_undef === false && + b_bool === false && + b_str === false && + b_obj === false && + b_null === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js new file mode 100644 index 0000000000..e08228e502 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js @@ -0,0 +1,39 @@ +/// 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: "15.4.3.2-0-5", + +path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-5.js", + +description: "Array.isArray return true if its argument is an Array (Array.prototype)", + +test: function testcase() { + var b = Array.isArray(Array.prototype); + if (b === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-6.js new file mode 100644 index 0000000000..7024e4b280 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-6.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-0-6", + +path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-6.js", + +description: "Array.isArray return true if its argument is an Array (new Array())", + +test: function testcase() { + var a = new Array(10); + var b = Array.isArray(a); + if (b === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-7.js new file mode 100644 index 0000000000..d191a10412 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-7.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: "15.4.3.2-0-7", + +path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-0-7.js", + +description: "Array.isArray returns false if its argument is not an Array", + +test: function testcase() { + var o = new Object(); + o[12] = 13; + var b = Array.isArray(o); + if (b === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-1.js new file mode 100644 index 0000000000..ff763c32e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-1.js @@ -0,0 +1,39 @@ +/// 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: "15.4.3.2-1-1", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-1.js", + + description: "Array.isArray applied to boolean primitive", + + test: function testcase() { + + return !Array.isArray(true); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-10.js new file mode 100644 index 0000000000..2472297725 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-10.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-1-10", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-10.js", + + description: "Array.isArray applied to RegExp object", + + test: function testcase() { + + return !Array.isArray(new RegExp()); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-11.js new file mode 100644 index 0000000000..8b1ef30598 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-11.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-1-11", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-11.js", + + description: "Array.isArray applied to the JSON object", + + test: function testcase() { + + return !Array.isArray(JSON); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-12.js new file mode 100644 index 0000000000..8424a597ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-12.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-1-12", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-12.js", + + description: "Array.isArray applied to Error object", + + test: function testcase() { + + return !Array.isArray(new SyntaxError()); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-13.js new file mode 100644 index 0000000000..91219d811f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-13.js @@ -0,0 +1,46 @@ +/// 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: "15.4.3.2-1-13", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-13.js", + + description: "Array.isArray applied to Arguments object", + + test: function testcase() { + + var arg; + + (function fun() { + arg = arguments; + }(1, 2, 3)); + + return !Array.isArray(arg); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-15.js new file mode 100644 index 0000000000..042656c1f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-15.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-1-15", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-15.js", + + description: "Array.isArray applied to the global object", + + test: function testcase() { + + return !Array.isArray(fnGlobalObject()); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-2.js new file mode 100644 index 0000000000..6865509d9f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.3.2-1-2", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-2.js", + + description: "Array.isArray applied to Boolean Object", + + test: function testcase() { + + return !Array.isArray(new Boolean(false)); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-3.js new file mode 100644 index 0000000000..0622f55e9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-3.js @@ -0,0 +1,39 @@ +/// 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: "15.4.3.2-1-3", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-3.js", + + description: "Array.isArray applied to number primitive", + + test: function testcase() { + + return !Array.isArray(5); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-4.js new file mode 100644 index 0000000000..3f3462085d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-4.js @@ -0,0 +1,39 @@ +/// 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: "15.4.3.2-1-4", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-4.js", + + description: "Array.isArray applied to Number object", + + test: function testcase() { + + return !Array.isArray(new Number(-3)); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-5.js new file mode 100644 index 0000000000..f477dee3d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-5.js @@ -0,0 +1,39 @@ +/// 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: "15.4.3.2-1-5", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-5.js", + + description: "Array.isArray applied to string primitive", + + test: function testcase() { + + return !Array.isArray("abc"); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-6.js new file mode 100644 index 0000000000..ee50f50e30 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-6.js @@ -0,0 +1,39 @@ +/// 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: "15.4.3.2-1-6", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-6.js", + + description: "Array.isArray applied to String object", + + test: function testcase() { + + return !Array.isArray(new String("hello\nworld\\!")); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-7.js new file mode 100644 index 0000000000..1caae7f91d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-7.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-1-7", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-7.js", + + description: "Array.isArray applied to Function object", + + test: function testcase() { + + return !Array.isArray(function () { }); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-8.js new file mode 100644 index 0000000000..063f749a5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-8.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-1-8", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-8.js", + + description: "Array.isArray applied to the Math object", + + test: function testcase() { + + return !Array.isArray(Math); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-9.js new file mode 100644 index 0000000000..bf44777399 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-9.js @@ -0,0 +1,40 @@ +/// 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: "15.4.3.2-1-9", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-1-9.js", + + description: "Array.isArray applied to Date object", + + test: function testcase() { + + return !Array.isArray(new Date()); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-1.js new file mode 100644 index 0000000000..d7e81f8576 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.3.2-2-1", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-1.js", + + description: "Array.isArray applied to an object with an array as the prototype", + + test: function testcase() { + + var proto = []; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + return !Array.isArray(child); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-2.js new file mode 100644 index 0000000000..a3edaf5008 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.3.2-2-2", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-2.js", + + description: "Array.isArray applied to an object with Array.prototype as the prototype", + + test: function testcase() { + + var proto = Array.prototype; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + return !Array.isArray(child); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-3.js new file mode 100644 index 0000000000..398c1a4d84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-3.js @@ -0,0 +1,39 @@ +/// 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: "15.4.3.2-2-3", + + path: "TestCases/chapter15/15.4/15.4.3/15.4.3.2/15.4.3.2-2-3.js", + + description: "Array.isArray applied to an Array-like object with length and some indexed properties", + + test: function testcase() { + + return !Array.isArray({ 0: 12, 1: 9, length: 2 }); + }, + + precondition: function prereq() { + return fnExists(Array.isArray); + } + +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js new file mode 100644 index 0000000000..ee4372dde3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.10-10-c-ii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js", + + description: "Array.prototype.slice will slice a string from start to end when index property (read-only) exists in Array.prototype (Step 10.c.ii)", + + test: function testcase() { + var arrObj = [1, 2, 3]; + try { + Object.defineProperty(Array.prototype, "0", { + value: "test", + writable: false, + configurable: true + }); + + var newArr = arrObj.slice(0, 1); + return newArr.hasOwnProperty("0") && newArr[0] === 1 && typeof newArr[1] === "undefined"; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js new file mode 100644 index 0000000000..0a3185d405 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.12-9-a-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js", + + description: "Array.prototype.splice - 'from' is the result of ToString(actualStart+k) in an Array", + + test: function testcase() { + var arrObj = [1, 2, 3]; + var newArrObj = arrObj.splice(-2, 1); + return newArrObj.length === 1 && newArrObj[0] === 2; + }, + + precondition: function prereq() { + return true; + } +}); + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js new file mode 100644 index 0000000000..8350ab4971 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.12-9-c-ii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js", + + description: "Array.prototype.splice will splice an array even when Array.prototype has index '0' set to read-only and 'fromPresent' less than 'actualDeleteCount (Step 9.c.ii)", + + test: function testcase() { + try { + var arr = ["a", "b", "c"]; + Array.prototype[0] = "test"; + var newArr = arr.splice(2, 1, "d"); + + var verifyValue = false; + verifyValue = arr.length === 3 && arr[0] === "a" && arr[1] === "b" && arr[2] === "d" + && newArr[0] === "c" && newArr.length === 1; + + var verifyEnumerable = false; + for (var p in newArr) { + if (newArr.hasOwnProperty("0") && p === "0") { + verifyEnumerable = true; + } + } + + var verifyWritable = false; + newArr[0] = 12; + verifyWritable = newArr[0] === 12; + + var verifyConfigurable = false; + delete newArr[0]; + verifyConfigurable = newArr.hasOwnProperty("0"); + + return verifyValue && !verifyConfigurable && verifyEnumerable && verifyWritable; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js new file mode 100644 index 0000000000..bd352a84e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.4.4.14-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js", + +description: "Array.prototype.indexOf must exist as a function", + +test: function testcase() { + var f = Array.prototype.indexOf; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js new file mode 100644 index 0000000000..078e3afeb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js", + +description: "Array.prototype.indexOf has a length property whose value is 1.", + +test: function testcase() { + if (Array.prototype.indexOf.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js new file mode 100644 index 0000000000..64be3fef52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.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: "15.4.4.14-1-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js", + +description: "Array.prototype.indexOf applied to undefined throws a TypeError", + +test: function testcase() { + try { + Array.prototype.indexOf.call(undefined); + return false; + } + catch (e) { + return e instanceof TypeError; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); +} +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js new file mode 100644 index 0000000000..d413cdafed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js", + + description: "Array.prototype.indexOf applied to the Math object", + + test: function testcase() { + try { + Math[1] = true; + Math.length = 2; + return Array.prototype.indexOf.call(Math, true) === 1; + } finally { + delete Math[1]; + delete Math.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js new file mode 100644 index 0000000000..ece0b52d9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.14-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js", + + description: "Array.prototype.indexOf applied to Date object", + + test: function testcase() { + + var obj = new Date(); + obj.length = 2; + obj[1] = true; + + return Array.prototype.indexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js new file mode 100644 index 0000000000..38a3cc6bf7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.14-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js", + + description: "Array.prototype.indexOf applied to RegExp object", + + test: function testcase() { + + var obj = new RegExp(); + obj.length = 2; + obj[1] = true; + + return Array.prototype.indexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js new file mode 100644 index 0000000000..89ebe910c7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.14-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js", + + description: "Array.prototype.indexOf applied to the JSON object", + + test: function testcase() { + var targetObj = {}; + try { + JSON[3] = targetObj; + JSON.length = 5; + return Array.prototype.indexOf.call(JSON, targetObj) === 3; + } finally { + delete JSON[3]; + delete JSON.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js new file mode 100644 index 0000000000..8098547104 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.14-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js", + + description: "Array.prototype.indexOf applied to Error object", + + test: function testcase() { + + var obj = new SyntaxError(); + obj[1] = true; + obj.length = 2; + + return Array.prototype.indexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js new file mode 100644 index 0000000000..9abace63e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.14-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js", + + description: "Array.prototype.indexOf applied to Arguments object", + + test: function testcase() { + + function fun() { + return arguments; + } + var obj = fun(1, true, 3); + + return Array.prototype.indexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js new file mode 100644 index 0000000000..0e4dbdd019 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.14-1-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js", + + description: "Array.prototype.indexOf applied to the global object", + + test: function testcase() { + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[1] = true; + fnGlobalObject().length = 2; + return Array.prototype.indexOf.call(fnGlobalObject(), true) === 1; + } finally { + delete fnGlobalObject()[1]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js new file mode 100644 index 0000000000..dee7677cc4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.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: "15.4.4.14-1-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js", + +description: "Array.prototype.indexOf applied to null throws a TypeError", + +test: function testcase() { + try { + Array.prototype.indexOf.call(null); + return false; + } + catch (e) { + return e instanceof TypeError; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js new file mode 100644 index 0000000000..3b8d058101 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.14-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js", + + description: "Array.prototype.indexOf applied to boolean primitive", + + test: function testcase() { + var targetObj = {}; + try { + Boolean.prototype[1] = targetObj; + Boolean.prototype.length = 2; + + return Array.prototype.indexOf.call(true, targetObj) === 1; + } finally { + delete Boolean.prototype[1]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js new file mode 100644 index 0000000000..a46e740a16 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.14-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js", + + description: "Array.prototype.indexOf applied to Boolean Object", + + test: function testcase() { + + var obj = new Boolean(false); + obj.length = 2; + obj[1] = true; + + return Array.prototype.indexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js new file mode 100644 index 0000000000..44a694691a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.14-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js", + + description: "Array.prototype.indexOf applied to number primitive", + + test: function testcase() { + var targetObj = {}; + try { + Number.prototype[1] = targetObj; + Number.prototype.length = 2; + + return Array.prototype.indexOf.call(5, targetObj) === 1; + } finally { + delete Number.prototype[1]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js new file mode 100644 index 0000000000..da400811b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.14-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js", + + description: "Array.prototype.indexOf applied to Number object", + + test: function testcase() { + + var obj = new Number(-3); + obj.length = 2; + obj[1] = true; + + return Array.prototype.indexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js new file mode 100644 index 0000000000..d30f773795 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js", + + description: "Array.prototype.indexOf applied to string primitive", + + test: function testcase() { + + return Array.prototype.indexOf.call("abc", "b") === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.js new file mode 100644 index 0000000000..d9b09bc08e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.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: "15.4.4.14-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.js", + + description: "Array.prototype.indexOf applied to String object", + + test: function testcase() { + + var obj = new String("null"); + + return Array.prototype.indexOf.call(obj, 'l') === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js new file mode 100644 index 0000000000..f4acf29f5d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.14-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js", + + description: "Array.prototype.indexOf applied to Function object", + + test: function testcase() { + + var obj = function (a, b) { + return a + b; + }; + obj[1] = true; + + return Array.prototype.indexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js new file mode 100644 index 0000000000..42eba295f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.14-10-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js", + +description: "Array.prototype.indexOf returns -1 for elements not present in array", + +test: function testcase() { + var a = new Array(); + a[100] = 1; + a[99999] = ""; + a[10] = new Object(); + a[5555] = 5.5; + a[123456] = "str"; + a[5] = 1E+309; + if (a.indexOf(1) !== 100 || + a.indexOf("") !== 99999 || + a.indexOf("str") !== 123456 || + a.indexOf(1E+309) !== 5 || //Infinity + a.indexOf(5.5) !== 5555 ) + { + return false; + } + if (a.indexOf(true) === -1 && + a.indexOf(5) === -1 && + a.indexOf("str1") === -1 && + a.indexOf(null) === -1 && + a.indexOf(new Object()) === -1) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js new file mode 100644 index 0000000000..7b78e2e0d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-10-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 and does not access any other properties", + +test: function testcase() { + var accessed = false; + var f = {length: 0}; + Object.defineProperty(f,"0",{get: function () {accessed = true; return 1;}}); + + + var i = Array.prototype.indexOf.call(f,1); + + if (i === -1 && accessed==false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.js new file mode 100644 index 0000000000..3dc984e29b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.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: "15.4.4.14-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.js", + + description: "Array.prototype.indexOf - 'length' is own data property on an Array-like object", + + test: function testcase() { + var objOne = { 1: true, length: 2 }; + var objTwo = { 2: true, length: 2 }; + return Array.prototype.indexOf.call(objOne, true) === 1 && + Array.prototype.indexOf.call(objTwo, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js new file mode 100644 index 0000000000..cbaa119770 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.14-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js", + + description: "Array.prototype.indexOf - 'length' is inherited accessor property", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () {}; + Con.prototype = proto; + + var childOne = new Con(); + childOne[1] = true; + var childTwo = new Con(); + childTwo[2] = true; + + return Array.prototype.indexOf.call(childOne, true) === 1 && + Array.prototype.indexOf.call(childTwo, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js new file mode 100644 index 0000000000..bb46736032 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.14-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js", + + description: "Array.prototype.indexOf - 'length' is own accessor property without a get function", + + test: function testcase() { + + var obj = { 1: true }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.indexOf.call(obj, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.js new file mode 100644 index 0000000000..1fccc6a853 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.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: "15.4.4.14-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.js", + + description: "Array.prototype.indexOf - 'length' is own accessor property without a get function that overrides an inherited accessor property", + + test: function testcase() { + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 20; + }, + configurable: true + }); + + var obj = { 1: 1 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.indexOf.call(obj, 1) === -1; + } finally { + delete Object.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js new file mode 100644 index 0000000000..47fba55bbe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.14-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js", + + description: "Array.prototype.indexOf - 'length' is inherited accessor property without a get function", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child[1] = true; + + return Array.prototype.indexOf.call(child, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.js new file mode 100644 index 0000000000..fd1ac04d2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.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: "15.4.4.14-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.js", + + description: "Array.prototype.indexOf - 'length' is undefined property", + + test: function testcase() { + + var obj = { 0: true, 1: true }; + + return Array.prototype.indexOf.call(obj, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js new file mode 100644 index 0000000000..8aca4b7537 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.14-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js", + + description: "Array.prototype.indexOf - 'length' is property of the global object", + + test: function testcase() { + var targetObj = {}; + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject().length = 2; + + fnGlobalObject()[1] = targetObj; + if (Array.prototype.indexOf.call(fnGlobalObject(), targetObj) !== 1) { + return false; + } + + fnGlobalObject()[1] = {}; + fnGlobalObject()[2] = targetObj; + + return Array.prototype.indexOf.call(fnGlobalObject(), targetObj) === -1; + } finally { + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js new file mode 100644 index 0000000000..8c09a1a4bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js", + + description: "Array.prototype.indexOf applied to Arguments object which implements its own property get method", + + test: function testcase() { + + var func = function (a, b) { + arguments[2] = false; + return Array.prototype.indexOf.call(arguments, true) === 1 && + Array.prototype.indexOf.call(arguments, false) === -1; + }; + + return func(0, true); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js new file mode 100644 index 0000000000..3234a7b115 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js", + + description: "Array.prototype.indexOf applied to String object, which implements its own property get method", + + test: function testcase() { + var str = new String("012"); + try { + String.prototype[3] = "3"; + return Array.prototype.indexOf.call(str, "2") === 2 && + Array.prototype.indexOf.call(str, "3") === -1; + } finally { + delete String.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js new file mode 100644 index 0000000000..dc33da1bdc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.14-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js", + + description: "Array.prototype.indexOf applied to Function object which implements its own property get method", + + test: function testcase() { + + var obj = function (a, b) { + return a + b; + }; + obj[1] = "b"; + obj[2] = "c"; + + return Array.prototype.indexOf.call(obj, obj[1]) === 1 && + Array.prototype.indexOf.call(obj, obj[2]) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js new file mode 100644 index 0000000000..02d6897cc4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.14-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js", + + description: "Array.prototype.indexOf - 'length' is own data property on an Array", + + test: function testcase() { + var targetObj = {}; + try { + Array.prototype[2] = targetObj; + + return [0, targetObj].indexOf(targetObj) === 1 && + [0, 1].indexOf(targetObj) === -1; + + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js new file mode 100644 index 0000000000..ee9f7ce1e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.14-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js", + + description: "Array.prototype.indexOf - 'length' is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var proto = { length: 0 }; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[1] = true; + + return Array.prototype.indexOf.call(child, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js new file mode 100644 index 0000000000..8a03a5edc5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.14-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js", + + description: "Array.prototype.indexOf - 'length' is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var targetObj = {}; + var arrProtoLen; + + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + + return [0, targetObj].indexOf(targetObj) === 1; + + } finally { + + Array.prototype.length = arrProtoLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js new file mode 100644 index 0000000000..3568216a98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.14-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js", + + description: "Array.prototype.indexOf - 'length' is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "length", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + child[1] = true; + + return Array.prototype.indexOf.call(child, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js new file mode 100644 index 0000000000..e2162d7cb9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.14-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js", + + description: "Array.prototype.indexOf - 'length' is an inherited data property", + + test: function testcase() { + var proto = { length: 2 }; + + var Con = function () {}; + Con.prototype = proto; + + var childOne = new Con(); + childOne[1] = true; + var childTwo = new Con(); + childTwo[2] = true; + + return Array.prototype.indexOf.call(childOne, true) === 1 && + Array.prototype.indexOf.call(childTwo, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js new file mode 100644 index 0000000000..2e59761a78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js", + + description: "Array.prototype.indexOf - 'length' is own accessor property", + + test: function testcase() { + var objOne = { 1: true }; + var objTwo = { 2: true }; + Object.defineProperty(objOne, "length", { + get: function () { + return 2; + }, + configurable: true + }); + Object.defineProperty(objTwo, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + return Array.prototype.indexOf.call(objOne, true) === 1 && + Array.prototype.indexOf.call(objTwo, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js new file mode 100644 index 0000000000..3148b4d4c7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js", + + description: "Array.prototype.indexOf - 'length' is own accessor property that overrides an inherited data property", + + test: function testcase() { + + var proto = { length: 0 }; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child[1] = true; + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + return Array.prototype.indexOf.call(child, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js new file mode 100644 index 0000000000..ef4bd7dd23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.14-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js", + + description: "Array.prototype.indexOf - 'length' is own accessor property that overrides an inherited accessor property", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "length", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child[1] = true; + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + return Array.prototype.indexOf.call(child, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.js new file mode 100644 index 0000000000..6a658e466e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.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: "15.4.4.14-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.js", + + description: "Array.prototype.indexOf - value of 'length' is undefined", + + test: function testcase() { + + var obj = { 0: 1, 1: 1, length: undefined }; + + return Array.prototype.indexOf.call(obj, 1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.js new file mode 100644 index 0000000000..1a948595bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.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: "15.4.4.14-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.js", + + description: "Array.prototype.indexOf - value of 'length' is number primitive (value is NaN)", + + test: function testcase() { + + var obj = { 0: 0, length: NaN }; + + return Array.prototype.indexOf.call(obj, 0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.js new file mode 100644 index 0000000000..5fad7ec957 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.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: "15.4.4.14-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.js", + + description: "Array.prototype.indexOf - 'length' is a string containing a positive number", + + test: function testcase() { + + var obj = { 1: 1, 2: 2, length: "2" }; + + return Array.prototype.indexOf.call(obj, 1) === 1 && + Array.prototype.indexOf.call(obj, 2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js new file mode 100644 index 0000000000..0f5ad23cd3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.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: "15.4.4.14-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js", + + description: "Array.prototype.indexOf - 'length' is a string containing a negative number", + + test: function testcase() { + + var obj = { 1: "true", 2: "2", length: "-4294967294" }; + + return Array.prototype.indexOf.call(obj, "true") === 1 && + Array.prototype.indexOf.call(obj, "2") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.js new file mode 100644 index 0000000000..fc4ea14fcd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.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: "15.4.4.14-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.js", + + description: "Array.prototype.indexOf - 'length' is a string containing a decimal number", + + test: function testcase() { + + var obj = { 199: true, 200: "200.59", length: "200.59" }; + + return Array.prototype.indexOf.call(obj, true) === 199 && + Array.prototype.indexOf.call(obj, "200.59") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js new file mode 100644 index 0000000000..a523084a6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.14-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js", + + description: "Array.prototype.indexOf - 'length' is a string containing +/-Infinity", + + test: function testcase() { + + var objOne = { 0: true, 1: true, length: "Infinity" }; + var objTwo = { 0: true, 1: true, length: "+Infinity" }; + var objThree = { 0: true, 1: true, length: "-Infinity" }; + + return Array.prototype.indexOf.call(objOne, true) === -1 && + Array.prototype.indexOf.call(objTwo, true) === -1 && + Array.prototype.indexOf.call(objThree, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.js new file mode 100644 index 0000000000..681fd111af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.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: "15.4.4.14-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.js", + + description: "Array.prototype.indexOf - 'length' is a string containing an exponential number", + + test: function testcase() { + + var obj = { 1: true, 2: "2E0", length: "2E0" }; + + return Array.prototype.indexOf.call(obj, true) === 1 && + Array.prototype.indexOf.call(obj, "2E0") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.js new file mode 100644 index 0000000000..69f6d9be04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.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: "15.4.4.14-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.js", + + description: "Array.prototype.indexOf - 'length' is a string containing a hex number", + + test: function testcase() { + + var obj = { 10: true, 11: "0x00B", length: "0x00B" }; + + return Array.prototype.indexOf.call(obj, true) === 10 && + Array.prototype.indexOf.call(obj, "0x00B") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.js new file mode 100644 index 0000000000..a027eb8a1b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.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: "15.4.4.14-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.js", + + description: "Array.prototype.indexOf - 'length' is a string containing a number with leading zeros", + + test: function testcase() { + + var obj = { 1: true, 2: "0002.0", length: "0002.0" }; + + return Array.prototype.indexOf.call(obj, true) === 1 && + Array.prototype.indexOf.call(obj, "0002.0") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.js new file mode 100644 index 0000000000..05ff3f1f50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.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: "15.4.4.14-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.js", + + description: "Array.prototype.indexOf - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + + var obj = { 0: true, 100: true, length: "one" }; + + return Array.prototype.indexOf.call(obj, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js new file mode 100644 index 0000000000..8cddaa25a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.14-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js", + + description: "Array.prototype.indexOf - value of 'length' is an Object which has an own toString method.", + + test: function testcase() { + + // objects inherit the default valueOf() method from Object + // that simply returns itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + var obj = { + 1: true, + 2: 2, + + length: { + toString: function () { + return '2'; + } + } + }; + + return Array.prototype.indexOf.call(obj, true) === 1 && + Array.prototype.indexOf.call(obj, 2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.js new file mode 100644 index 0000000000..5e6b7b7163 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.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: "15.4.4.14-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.js", + + description: "Array.prototype.indexOf return -1 when 'length' is a boolean (value is true)", + + test: function testcase() { + var obj = { 0: 0, 1: 1, length: true }; + return Array.prototype.indexOf.call(obj, 0) === 0 && + Array.prototype.indexOf.call(obj, 1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js new file mode 100644 index 0000000000..ce69db87c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.14-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js", + + description: "Array.prototype.indexOf - value of 'length' is an Object which has an own valueOf method.", + + test: function testcase() { + + //valueOf method will be invoked first, since hint is Number + var obj = { + 1: true, + 2: 2, + length: { + valueOf: function () { + return 2; + } + } + }; + + return Array.prototype.indexOf.call(obj, true) === 1 && + Array.prototype.indexOf.call(obj, 2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js new file mode 100644 index 0000000000..4850e26019 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.14-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js", + + description: "Array.prototype.indexOf - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var obj = { + 1: true, + length: { + toString: function () { + toStringAccessed = true; + return '2'; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + } + }; + + return Array.prototype.indexOf.call(obj, true) === 1 && toStringAccessed && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js new file mode 100644 index 0000000000..e70f49a274 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.14-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js", + + description: "Array.prototype.indexOf throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var obj = { + length: { + toString: function () { + toStringAccessed = true; + return {}; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + } + }; + + try { + Array.prototype.indexOf.call(obj); + return false; + } catch (e) { + return toStringAccessed && valueOfAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js new file mode 100644 index 0000000000..c01b58ff6d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.14-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js", + + description: "Array.prototype.indexOf uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child.toString = function () { + toStringAccessed = true; + return 2; + }; + + var obj = { + 1: true, + length: child + }; + + return Array.prototype.indexOf.call(obj, true) === 1 && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.js new file mode 100644 index 0000000000..5c5e11051d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.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: "15.4.4.14-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.js", + + description: "Array.prototype.indexOf - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + var obj = { 122: true, 123: false, length: 123.321 }; //length will be 123 finally + + return Array.prototype.indexOf.call(obj, true) === 122 && + Array.prototype.indexOf.call(obj, false) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js new file mode 100644 index 0000000000..06c9f8ea74 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.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: "15.4.4.14-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js", + + description: "Array.prototype.indexOf - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + var obj = { 1: true, 2: false, length: -4294967294.5 }; //length will be 2 finally + + return Array.prototype.indexOf.call(obj, true) === 1 && + Array.prototype.indexOf.call(obj, false) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js new file mode 100644 index 0000000000..6ec0767786 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js", + + description: "Array.prototype.indexOf - value of 'length' is boundary value (2^32)", + + test: function testcase() { + var targetObj = {}; + var obj = { + 0: targetObj, + 4294967294: targetObj, + 4294967295: targetObj, + length: 4294967296 + }; + + return Array.prototype.indexOf.call(obj, targetObj) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js new file mode 100644 index 0000000000..397fae9ec9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js", + + description: "Array.prototype.indexOf - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + var targetObj = {}; + var obj = { + 0: targetObj, + 1: 4294967297, + length: 4294967297 + }; + + return Array.prototype.indexOf.call(obj, targetObj) === 0 && + Array.prototype.indexOf.call(obj, 4294967297) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.js new file mode 100644 index 0000000000..d0da0394d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.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: "15.4.4.14-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.js", + + description: "Array.prototype.indexOf - value of 'length' is a number (value is 0)", + + test: function testcase() { + + var obj = { 0: true, length: 0 }; + + return Array.prototype.indexOf.call(obj, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.js new file mode 100644 index 0000000000..b89cae6517 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.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: "15.4.4.14-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.js", + + description: "Array.prototype.indexOf - value of 'length' is a number (value is +0)", + + test: function testcase() { + + var obj = { 0: true, length: +0 }; + + return Array.prototype.indexOf.call(obj, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.js new file mode 100644 index 0000000000..479f9c5cb4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.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: "15.4.4.14-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.js", + + description: "Array.prototype.indexOf - value of 'length' is a number (value is -0)", + + test: function testcase() { + + var obj = { 0: true, length: -0 }; + + return Array.prototype.indexOf.call(obj, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.js new file mode 100644 index 0000000000..e308bbbe0b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.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: "15.4.4.14-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.js", + + description: "Array.prototype.indexOf - value of 'length' is a number (value is positive)", + + test: function testcase() { + + var obj = { 3: true, 4: false, length: 4 }; + + return Array.prototype.indexOf.call(obj, true) === 3 && + Array.prototype.indexOf.call(obj, false) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js new file mode 100644 index 0000000000..adc32f664d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.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: "15.4.4.14-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js", + + description: "Array.prototype.indexOf - value of 'length' is a number (value is negative)", + + test: function testcase() { + + var obj = { 4: true, 5: false, length: 5 - Math.pow(2, 32) }; + + return Array.prototype.indexOf.call(obj, true) === 4 && + Array.prototype.indexOf.call(obj, false) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js new file mode 100644 index 0000000000..fd1e33e589 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.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: "15.4.4.14-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js", + + description: "Array.prototype.indexOf - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + + var obj = { 0: 0, length: Infinity }; + + return Array.prototype.indexOf.call(obj, 0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.js new file mode 100644 index 0000000000..f3abd2d98b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.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: "15.4.4.14-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.js", + + description: "Array.prototype.indexOf - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + + var obj = { 0: 0, length: -Infinity }; + + return Array.prototype.indexOf.call(obj, 0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js new file mode 100644 index 0000000000..4f9d9fc35e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 (empty array)", + +test: function testcase() { + var i = [].indexOf(42); + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js new file mode 100644 index 0000000000..cf53e080cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js", + + description: "Array.prototype.indexOf - 'length' is a number of value -6e-1", + + test: function testcase() { + var targetObj = []; + var obj = { 0: targetObj, 100: targetObj, length: -6e-1 }; + return Array.prototype.indexOf.call(obj, targetObj) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js new file mode 100644 index 0000000000..0d9ce6381d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js", + + description: "Array.prototype.indexOf - 'length' is an empty string", + + test: function testcase() { + var targetObj = []; + var obj = { 0: targetObj, 100: targetObj, length: "" }; + return Array.prototype.indexOf.call(obj, targetObj) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.js new file mode 100644 index 0000000000..319f332e5b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.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: "15.4.4.14-4-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 ( length overridden to null (type conversion))", + +test: function testcase() { + + var i = Array.prototype.indexOf.call({length: null}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.js new file mode 100644 index 0000000000..bc8232d7c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.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: "15.4.4.14-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 (length overridden to false (type conversion))", + +test: function testcase() { + + var i = Array.prototype.indexOf.call({length: false}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.js new file mode 100644 index 0000000000..b3c1432dd7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.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: "15.4.4.14-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 (generic 'array' with length 0 )", + +test: function testcase() { + + var i = Array.prototype.lastIndexOf.call({length: 0}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.js new file mode 100644 index 0000000000..221bfb4228 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.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: "15.4.4.14-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 ( length overridden to '0' (type conversion))", + +test: function testcase() { + + var i = Array.prototype.indexOf.call({length: '0'}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.js new file mode 100644 index 0000000000..153a201d3b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.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: "15.4.4.14-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)", + +test: function testcase() { + + var i = Array.prototype.indexOf.call({length: { valueOf: function () { return 0;}}}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js new file mode 100644 index 0000000000..8639579bac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.14-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 ( length is object overridden with obj w/o valueOf (toString))", + +test: function testcase() { + + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + var i = Array.prototype.indexOf.call({length: { toString: function () { return '0';}}}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js new file mode 100644 index 0000000000..715b20599c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.14-4-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js", + +description: "Array.prototype.indexOf returns -1 if 'length' is 0 (length is an empty array)", + +test: function testcase() { + + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + var i = Array.prototype.indexOf.call({length: [ ]}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js new file mode 100644 index 0000000000..d419a1d596 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js", + + description: "Array.prototype.indexOf - 'length' is a number of value 0.1", + + test: function testcase() { + var targetObj = []; + var obj = { 0: targetObj, 100: targetObj, length: 0.1 }; + return Array.prototype.indexOf.call(obj, targetObj) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js new file mode 100644 index 0000000000..e3945deb6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js", + +description: "Array.prototype.indexOf when fromIndex is string", + +test: function testcase() { + var a = [1,2,1,2,1,2]; + if (a.indexOf(2,"2") === 3 && // "2" resolves to 2 + a.indexOf(2,"one") === 1) { // "one" resolves to 0 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js new file mode 100644 index 0000000000..6c5fdabaee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is positive number)", + + test: function testcase() { + var targetObj = {}; + return [0, targetObj, 2].indexOf(targetObj, 2) === -1 && + [0, 1, targetObj].indexOf(targetObj, 2) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js new file mode 100644 index 0000000000..cbc1e395c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is negative number)", + + test: function testcase() { + var targetObj = {}; + return [0, targetObj, 2].indexOf(targetObj, -1) === -1 && + [0, 1, targetObj].indexOf(targetObj, -1) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js new file mode 100644 index 0000000000..822227e25d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is Infinity)", + + test: function testcase() { + var arr = []; + arr[Math.pow(2, 32) - 2] = true; //length is the max value of Uint type + return arr.indexOf(true, Infinity) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js new file mode 100644 index 0000000000..8f628c58f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is -Infinity)", + + test: function testcase() { + + return [true].indexOf(true, -Infinity) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js new file mode 100644 index 0000000000..9e47c2d1cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-5-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is NaN)", + + test: function testcase() { + + return [true].indexOf(true, NaN) === 0 && [true].indexOf(true, -NaN) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js new file mode 100644 index 0000000000..77843d4276 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing a negative number", + + test: function testcase() { + + return [0, true, 2].indexOf(true, "-1") === -1 && + [0, 1, true].indexOf(true, "-1") === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js new file mode 100644 index 0000000000..287d199dc3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing Infinity", + + test: function testcase() { + var arr = []; + arr[Math.pow(2, 32) - 2] = true; //length is the max value of Uint type + return arr.indexOf(true, "Infinity") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js new file mode 100644 index 0000000000..e961c976d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-5-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing -Infinity", + + test: function testcase() { + + return [true].indexOf(true, "-Infinity") === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js new file mode 100644 index 0000000000..a27465ddfe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing an exponential number", + + test: function testcase() { + var targetObj = {}; + return [0, 1, targetObj, 3, 4].indexOf(targetObj, "3E0") === -1 && + [0, 1, 2, targetObj, 4].indexOf(targetObj, "3E0") === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js new file mode 100644 index 0000000000..bb6c897683 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing a hex number", + + test: function testcase() { + var targetObj = {}; + return [0, 1, targetObj, 3, 4].indexOf(targetObj, "0x0003") === -1 && + [0, 1, 2, targetObj, 4].indexOf(targetObj, "0x0003") === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.js new file mode 100644 index 0000000000..0e0e694eb1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.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: "15.4.4.14-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.js", + +description: "Array.prototype.indexOf when fromIndex is floating point number", + +test: function testcase() { + var a = new Array(1,2,3); + if (a.indexOf(3,0.49) === 2 && // 0.49 resolves to 0 + a.indexOf(1,0.51) === 0 && // 0.51 resolves to 0 + a.indexOf(1,1.51) === -1) { // 1.01 resolves to 1 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js new file mode 100644 index 0000000000..0b1b3c7dd5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' which is a string containing a number with leading zeros", + + test: function testcase() { + var targetObj = {}; + return [0, 1, targetObj, 3, 4].indexOf(targetObj, "0003.10") === -1 && + [0, 1, 2, targetObj, 4].indexOf(targetObj, "0003.10") === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js new file mode 100644 index 0000000000..599e72ebaa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.14-5-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is an Object, which has an own toString method", + + test: function testcase() { + + // objects inherit the default valueOf() method from Object + // that simply returns itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + var fromIndex = { + toString: function () { + return '1'; + } + }; + + return [0, true].indexOf(true, fromIndex) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js new file mode 100644 index 0000000000..ba673c2494 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-5-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is an Object, which has an own valueOf method", + + test: function testcase() { + + var fromIndex = { + valueOf: function () { + return 1; + } + }; + + + return [0, true].indexOf(true, fromIndex) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js new file mode 100644 index 0000000000..33cb48db28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-5-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var fromIndex = { + toString: function () { + toStringAccessed = true; + return '1'; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + }; + + return [0, true].indexOf(true, fromIndex) === 1 && toStringAccessed && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js new file mode 100644 index 0000000000..4f1b7ef69b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.14-5-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js", + + description: "Array.prototype.indexOf throws TypeError exception when value of 'fromIndex' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + var fromIndex = { + toString: function () { + toStringAccessed = true; + return {}; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + }; + + try { + [0, true].indexOf(true, fromIndex); + return false; + } catch (e) { + return toStringAccessed && valueOfAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js new file mode 100644 index 0000000000..aa4eecb3ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.14-5-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js", + + description: "Array.prototype.indexOf uses inherited valueOf method when value of 'fromIndex' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 1; + } + }; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child.toString = function () { + toStringAccessed = true; + return 2; + }; + + return [0, true].indexOf(true, child) === 1 && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js new file mode 100644 index 0000000000..c33d5a794c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.14-5-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js", + + description: "Array.prototype.indexOf - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + var stepTwoOccurs = false; + var stepFiveOccurs = false; + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + stepTwoOccurs = true; + if (stepFiveOccurs) { + throw new Error("Step 5 occurred out of order"); + } + return 20; + }, + configurable: true + }); + + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.indexOf.call(obj, undefined, fromIndex); + return stepTwoOccurs && stepFiveOccurs; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js new file mode 100644 index 0000000000..1a08e86ced --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.14-5-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js", + + description: "Array.prototype.indexOf - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + var stepThreeOccurs = false; + var stepFiveOccurs = false; + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + return { + valueOf: function () { + stepThreeOccurs = true; + if (stepFiveOccurs) { + throw new Error("Step 5 occurred out of order"); + } + return 20; + } + }; + }, + configurable: true + }); + + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.indexOf.call(obj, undefined, fromIndex); + return stepThreeOccurs && stepFiveOccurs; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js new file mode 100644 index 0000000000..6e908e9a83 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.14-5-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js", + + description: "Array.prototype.indexOf - side effects produced by step 1 are visible when an exception occurs", + + test: function testcase() { + + var stepFiveOccurs = false; + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.indexOf.call(undefined, undefined, fromIndex); + return false; + } catch (e) { + return (e instanceof TypeError) && !stepFiveOccurs; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js new file mode 100644 index 0000000000..99e9c937f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.14-5-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js", + + description: "Array.prototype.indexOf - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var stepFiveOccurs = false; + + var obj = {}; + Object.defineProperty(obj, "length", { + get: function () { + throw new RangeError(); + }, + configurable: true + }); + + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.indexOf.call(obj, undefined, fromIndex); + return false; + } catch (e) { + return (e instanceof RangeError) && !stepFiveOccurs; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js new file mode 100644 index 0000000000..459f2f0053 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js", + +description: "Array.prototype.indexOf when fromIndex is boolean", + +test: function testcase() { + var a = [1,2,3]; + if (a.indexOf(1,true) === -1 && // true resolves to 1 + a.indexOf(1,false) === 0 ) { // false resolves to 0 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js new file mode 100644 index 0000000000..dd3be94af9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.14-5-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js", + + description: "Array.prototype.indexOf - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var stepFiveOccurs = false; + + var obj = {}; + Object.defineProperty(obj, "length", { + get: function () { + return { + valueOf: function () { + throw new TypeError(); + } + }; + }, + configurable: true + }); + + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.indexOf.call(obj, undefined, fromIndex); + return false; + } catch (e) { + return (e instanceof TypeError) && !stepFiveOccurs; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js new file mode 100644 index 0000000000..4adabc6aee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js", + + description: "Array.prototype.indexOf - 'fromIndex' is a positive non-integer, verify truncation occurs in the proper direction", + + test: function testcase() { + var targetObj = {}; + return [0, targetObj, 2].indexOf(targetObj, 2.5) === -1 && + [0, 1, targetObj].indexOf(targetObj, 2.5) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js new file mode 100644 index 0000000000..99a80e2653 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-5-32", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js", + + description: "Array.prototype.indexOf - 'fromIndex' is a negative non-integer, verify truncation occurs in the proper direction", + + test: function testcase() { + var targetObj = {}; + return [0, targetObj, 2].indexOf(targetObj, -1.5) === -1 && + [0, 1, targetObj].indexOf(targetObj, -1.5) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.js new file mode 100644 index 0000000000..47ab681d9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.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: "15.4.4.14-5-33", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.js", + + description: "Array.prototype.indexOf match on the first element, a middle element and the last element when 'fromIndex' is passed", + + test: function testcase() { + + return [0, 1, 2, 3, 4].indexOf(0, 0) === 0 && + [0, 1, 2, 3, 4].indexOf(2, 1) === 2 && + [0, 1, 2, 3, 4].indexOf(2, 2) === 2 && + [0, 1, 2, 3, 4].indexOf(4, 2) === 4 && + [0, 1, 2, 3, 4].indexOf(4, 4) === 4; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js new file mode 100644 index 0000000000..570445fd45 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js", + +description: "Array.prototype.indexOf returns 0 if fromIndex is 'undefined'", + +test: function testcase() { + var a = [1,2,3]; + if (a.indexOf(1,undefined) === 0) { // undefined resolves to 0 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js new file mode 100644 index 0000000000..60afa9ce4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js", + +description: "Array.prototype.indexOf returns 0 if fromIndex is null", + +test: function testcase() { + var a = [1,2,3]; + if (a.indexOf(1,null) === 0 ) { // null resolves to 0 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.js new file mode 100644 index 0000000000..7ded3b36f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.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: "15.4.4.14-5-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.js", + + description: "Array.prototype.indexOf - 'fromIndex' isn't passed", + + test: function testcase() { + var arr = [0, 1, 2, 3, 4]; + //'fromIndex' will be set as 0 if not passed by default + return arr.indexOf(0) === arr.indexOf(0, 0) && + arr.indexOf(2) === arr.indexOf(2, 0) && + arr.indexOf(4) === arr.indexOf(4, 0); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js new file mode 100644 index 0000000000..589475ca78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-5-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is 0)", + + test: function testcase() { + + return [true].indexOf(true, 0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js new file mode 100644 index 0000000000..052af73642 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-5-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is +0)", + + test: function testcase() { + + return [true].indexOf(true, +0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js new file mode 100644 index 0000000000..749167b2db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js", + + description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is -0)", + + test: function testcase() { + + return [true].indexOf(true, -0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.js new file mode 100644 index 0000000000..511ab45986 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.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: "15.4.4.14-6-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.js", + +description: "Array.prototype.indexOf returns -1 if fromIndex is greater than Array length", + +test: function testcase() { + var a = [1,2,3]; + if (a.indexOf(1,5) === -1 && + a.indexOf(1,3) === -1 && + [ ].indexOf(1,0) === -1 ){ + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js new file mode 100644 index 0000000000..67dc115234 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-7-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js", + + description: "Array.prototype.indexOf returns -1 when 'fromIndex' is length of array - 1", + + test: function testcase() { + + return [1, 2, 3].indexOf(1, 2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js new file mode 100644 index 0000000000..f0f9007388 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-7-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js", + + description: "Array.prototype.indexOf returns correct index when 'fromIndex' is length of array - 1", + + test: function testcase() { + + return [1, 2, 3].indexOf(3, 2) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js new file mode 100644 index 0000000000..de96757c05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-7-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js", + + description: "Array.prototype.indexOf returns -1 when 'fromIndex' and 'length' are both 0", + + test: function testcase() { + + return [].indexOf(1, 0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js new file mode 100644 index 0000000000..ded6843e0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-7-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js", + + description: "Array.prototype.indexOf returns -1 when 'fromIndex' is 1", + + test: function testcase() { + + return [1, 2, 3].indexOf(1, 1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js new file mode 100644 index 0000000000..a54936f91f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-7-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js", + + description: "Array.prototype.indexOf returns correct index when 'fromIndex' is 1", + + test: function testcase() { + + return [1, 2, 3].indexOf(2, 1) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.js new file mode 100644 index 0000000000..ce8ef36b32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.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: "15.4.4.14-8-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.js", + +description: "Array.prototype.indexOf with negative fromIndex", + +test: function testcase() { + var a = new Array(1,2,3); + + if (a.indexOf(2,-1) === -1 && + a.indexOf(2,-2) === 1 && + a.indexOf(1,-3) === 0 && + a.indexOf(1,-5.3) === 0 ) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js new file mode 100644 index 0000000000..d4e2c01022 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-8-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js", + + description: "Array.prototype.indexOf returns correct index when 'fromIndex' is -1", + + test: function testcase() { + + return [1, 2, 3, 4].indexOf(4, -1) === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js new file mode 100644 index 0000000000..f66bdb5b39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-8-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js", + + description: "Array.prototype.indexOf returns -1 when abs('fromIndex') is length of array - 1", + + test: function testcase() { + + return [1, 2, 3, 4].indexOf(1, -3) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js new file mode 100644 index 0000000000..32ef21e2d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-8-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js", + + description: "Array.prototype.indexOf returns -1 when abs('fromIndex') is length of array", + + test: function testcase() { + + return [1, 2, 3, 4].indexOf(0, -4) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.js new file mode 100644 index 0000000000..aa657b0832 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.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: "15.4.4.14-9-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.js", + +description: "Array.prototype.indexOf must return correct index (boolean)", + +test: function testcase() { + var obj = {toString:function (){return true}}; + var _false = false; + var a = [obj,"true", undefined,0,_false,null,1,"str",0,1,true,false,true,false]; + if (a.indexOf(true) === 10 && //a[10]=true + a.indexOf(false) === 4) //a[4] =_false + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js new file mode 100644 index 0000000000..e5b5bea4e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js @@ -0,0 +1,44 @@ +/// 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. + +/** note that prior to the finally ES5 draft SameValue was used for comparisions +and hence NaNs could be found using indexOf **/ + + +ES5Harness.registerTest( { +id: "15.4.4.14-9-10", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js", + +description: "Array.prototype.indexOf must return correct index (NaN)", + +test: function testcase() { + var _NaN = NaN; + var a = new Array("NaN",undefined,0,false,null,{toString:function (){return NaN}},"false",_NaN,NaN); + if (a.indexOf(NaN) === -1) // NaN is equal to nothing, including itself. + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js new file mode 100644 index 0000000000..eebcf44ae0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.14-9-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js", + + description: "Array.prototype.indexOf - the length of iteration isn't changed by adding elements to the array during iteration", + + test: function testcase() { + + var arr = [20]; + + Object.defineProperty(arr, "0", { + get: function () { + arr[1] = 1; + return 0; + }, + configurable: true + }); + + return arr.indexOf(1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js new file mode 100644 index 0000000000..e4f445742d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-9-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js", + +description: "Array.prototype.indexOf must return correct index (Number)", + +test: function testcase() { + var obj = {toString:function (){return 0}}; + var one = 1; + var _float = -(4/3); + var a = new Array(false,undefined,null,"0",obj,-1.3333333333333, "str",-0,true,+0, one, 1,0, false, _float, -(4/3)); + if (a.indexOf(-(4/3)) === 14 && // a[14]=_float===-(4/3) + a.indexOf(0) === 7 && // a[7] = +0, 0===+0 + a.indexOf(-0) === 7 && // a[7] = +0, -0===+0 + a.indexOf(1) === 10 ) // a[10] =one=== 1 + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.js new file mode 100644 index 0000000000..a0c9bdb16b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.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: "15.4.4.14-9-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.js", + +description: "Array.prototype.indexOf must return correct index(string)", + +test: function testcase() { + var obj = {toString:function (){return "false"}}; + var szFalse = "false"; + var a = new Array("false1",undefined,0,false,null,1,obj,0,szFalse, "false"); + if (a.indexOf("false") === 8) //a[8]=szFalse + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.js new file mode 100644 index 0000000000..03d3ec127d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.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: "15.4.4.14-9-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.js", + +description: "Array.prototype.indexOf must return correct index(undefined)", + +test: function testcase() { + var obj = {toString:function (){return undefined;}}; + var _undefined1 = undefined; + var _undefined2; + var a = new Array(true,0,false,null,1,"undefined",obj,1,_undefined2,_undefined1,undefined); + if (a.indexOf(undefined) === 8) //a[8]=_undefined2 + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.js new file mode 100644 index 0000000000..dbbf520339 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.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: "15.4.4.14-9-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.js", + +description: "Array.prototype.indexOf must return correct index (Object)", + +test: function testcase() { + var obj1 = {toString:function (){return "false"}}; + var obj2 = {toString:function (){return "false"}}; + var obj3 = obj1; + var a = new Array(false,undefined,0,false,null,{toString:function (){return "false"}},"false",obj2,obj1,obj3); + if (a.indexOf(obj3) === 8) //a[8] = obj1; + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.js new file mode 100644 index 0000000000..886b92b4de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.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: "15.4.4.14-9-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.js", + +description: "Array.prototype.indexOf must return correct index(null)", + +test: function testcase() { + var obj = {toString:function (){return null}}; + var _null = null; + var a = new Array(true,undefined,0,false,_null,1,"str",0,1,obj,true,false,null); + if (a.indexOf(null) === 4 ) //a[4]=_null + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.js new file mode 100644 index 0000000000..fb6e4ef29f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.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: "15.4.4.14-9-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.js", + +description: "Array.prototype.indexOf must return correct index (self reference)", + +test: function testcase() { + var a = new Array(0,1,2,3); + a[2] = a; + if (a.indexOf(a) === 2 && + a.indexOf(3) === 3 ) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.js new file mode 100644 index 0000000000..fd8fc637ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.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: "15.4.4.14-9-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.js", + +description: "Array.prototype.indexOf must return correct index (Array)", + +test: function testcase() { + var b = new Array("0,1"); + var a = new Array(0,b,"0,1",3); + if (a.indexOf(b.toString()) === 2 && + a.indexOf("0,1") === 2 ) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js new file mode 100644 index 0000000000..368d91aaa0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-9-9", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js", + +description: "Array.prototype.indexOf must return correct index (Sparse Array)", + +test: function testcase() { + var a = new Array(0,1); + a[4294967294] = 2; // 2^32-2 - is max array element + a[4294967295] = 3; // 2^32-1 added as non-array element property + a[4294967296] = 4; // 2^32 added as non-array element property + a[4294967297] = 5; // 2^32+1 added as non-array element property + + // start searching near the end so in case implementation actually tries to test all missing elements!! + return (a.indexOf(2,4294967290 ) === 4294967294 && + a.indexOf(3,4294967290) === -1 && + a.indexOf(4,4294967290) === -1 && + a.indexOf(5,4294967290) === -1 ) ; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js new file mode 100644 index 0000000000..a7e8a4a121 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.14-9-a-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js", + + description: "Array.prototype.indexOf - added properties in step 2 are visible here", + + test: function testcase() { + + var arr = { }; + + Object.defineProperty(arr, "length", { + get: function () { + arr[2] = "length"; + return 3; + }, + configurable: true + }); + + return 2 === Array.prototype.indexOf.call(arr, "length"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js new file mode 100644 index 0000000000..d6dc359d66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.14-9-a-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js", + + description: "Array.prototype.indexOf - properties can be added to prototype after current position are visited on an Array", + + test: function testcase() { + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + return arr.indexOf(6.99) === 1; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js new file mode 100644 index 0000000000..edd1c9bac7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.14-9-a-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js", + + description: "Array.prototype.indexOf - deleting own property causes index property not to be visited on an Array-like object", + + test: function testcase() { + + var arr = { length: 2 }; + + Object.defineProperty(arr, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + return -1 === Array.prototype.indexOf.call(arr, 6.99); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js new file mode 100644 index 0000000000..1c3adcf8ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.14-9-a-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js", + + description: "Array.prototype.indexOf - deleting own property causes index property not to be visited on an Array", + + test: function testcase() { + + var arr = [1, 2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + return -1 === arr.indexOf("6.99"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js new file mode 100644 index 0000000000..8b88d9ac8d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-9-a-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js", + + description: "Array.prototype.indexOf - deleting property of prototype causes prototype index property not to be visited on an Array-like Object", + + test: function testcase() { + + var arr = { 2: 2, length: 20 }; + + Object.defineProperty(arr, "0", { + get: function () { + delete Object.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + return -1 === Array.prototype.indexOf.call(arr, 1); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js new file mode 100644 index 0000000000..df428a7708 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-9-a-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js", + + description: "Array.prototype.indexOf - deleting property of prototype causes prototype index property not to be visited on an Array", + + test: function testcase() { + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + return -1 === arr.indexOf(1); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js new file mode 100644 index 0000000000..610af45597 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-9-a-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js", + + description: "Array.prototype.indexOf - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + + var arr = { 0: 0, 1: 111, 2: 2, length: 10 }; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + return 1 === Array.prototype.indexOf.call(arr, 1); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js new file mode 100644 index 0000000000..28eb59ce56 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-9-a-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js", + + description: "Array.prototype.indexOf - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + + var arr = [0, 111, 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + return 1 === arr.indexOf(1); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js new file mode 100644 index 0000000000..7bdb538dd2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.14-9-a-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js", + + description: "Array.prototype.indexOf - decreasing length of array causes index property not to be visited", + + test: function testcase() { + + var arr = [0, 1, 2, "last"]; + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 3; + return 0; + }, + configurable: true + }); + + return -1 === arr.indexOf("last"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js new file mode 100644 index 0000000000..2ef1452912 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.14-9-a-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js", + + description: "Array.prototype.indexOf - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + + var arr = [0, 1, 2]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + return 2 === arr.indexOf("prototype"); + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js new file mode 100644 index 0000000000..387bc0eb4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.14-9-a-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js", + + description: "Array.prototype.indexOf - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + return 2 === arr.indexOf("unconfigurable"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js new file mode 100644 index 0000000000..805f65757a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.14-9-a-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js", + + description: "Array.prototype.indexOf - added properties in step 5 are visible here on an Array-like object", + + test: function testcase() { + + var arr = { length: 30 }; + var targetObj = function () { }; + + var fromIndex = { + valueOf: function () { + arr[4] = targetObj; + return 3; + } + }; + + return 4 === Array.prototype.indexOf.call(arr, targetObj, fromIndex); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js new file mode 100644 index 0000000000..1e5aabbc98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.14-9-a-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js", + + description: "Array.prototype.indexOf - added properties in step 5 are visible here on an Array", + + test: function testcase() { + + var arr = []; + arr.length = 30; + var targetObj = function () { }; + + var fromIndex = { + valueOf: function () { + arr[4] = targetObj; + return 3; + } + }; + + return 4 === arr.indexOf(targetObj, fromIndex); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js new file mode 100644 index 0000000000..039e933c70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.14-9-a-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js", + + description: "Array.prototype.indexOf - deleted properties in step 2 are visible here", + + test: function testcase() { + + var arr = { 2: 6.99 }; + + Object.defineProperty(arr, "length", { + get: function () { + delete arr[2]; + return 3; + }, + configurable: true + }); + + return -1 === Array.prototype.indexOf.call(arr, 6.99); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js new file mode 100644 index 0000000000..cd77a3270a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.14-9-a-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js", + + description: "Array.prototype.indexOf - deleted properties in step 5 are visible here on an Array-like object", + + test: function testcase() { + + var arr = { 10: false, length: 30 }; + + var fromIndex = { + valueOf: function () { + delete arr[10]; + return 3; + } + }; + + return -1 === Array.prototype.indexOf.call(arr, false, fromIndex); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js new file mode 100644 index 0000000000..d2a61274cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.14-9-a-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js", + + description: "Array.prototype.indexOf - deleted properties in step 5 are visible here on an Array", + + test: function testcase() { + + var arr = []; + arr[10] = "10"; + arr.length = 20; + + var fromIndex = { + valueOf: function () { + delete arr[10]; + return 3; + } + }; + + return -1 === arr.indexOf("10", fromIndex); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js new file mode 100644 index 0000000000..95f3f7cc51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-9-a-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js", + + description: "Array.prototype.indexOf - properties added into own object after current position are visited on an Array-like object", + + test: function testcase() { + + var arr = { length: 2 }; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + return Array.prototype.indexOf.call(arr, 1) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js new file mode 100644 index 0000000000..822cdf95c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-9-a-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js", + + description: "Array.prototype.indexOf - properties added into own object after current position are visited on an Array", + + test: function testcase() { + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + return arr.indexOf(1) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js new file mode 100644 index 0000000000..20724dd1f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.14-9-a-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js", + + description: "Array.prototype.indexOf - properties can be added to prototype after current position are visited on an Array-like object", + + test: function testcase() { + + var arr = { length: 2 }; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + return Array.prototype.indexOf.call(arr, 6.99) === 1; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js new file mode 100644 index 0000000000..466abfffd3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-9-b-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js", + + description: "Array.prototype.indexOf - non-existent property wouldn't be called", + + test: function testcase() { + + return [0, , 2].indexOf(undefined) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.js new file mode 100644 index 0000000000..270be418dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.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: "15.4.4.14-9-b-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.js", + + description: "Array.prototype.indexOf - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + var obj = { 0: 0, 1: 1, 2: 2, length: 3 }; + return Array.prototype.indexOf.call(obj, 0) === 0 && + Array.prototype.indexOf.call(obj, 1) === 1 && + Array.prototype.indexOf.call(obj, 2) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js new file mode 100644 index 0000000000..9de6610673 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.14-9-b-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var obj = { length: 3 }; + Object.defineProperty(obj, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + Object.defineProperty(obj, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + return 0 === Array.prototype.indexOf.call(obj, 0) && + 1 === Array.prototype.indexOf.call(obj, 1) && + 2 === Array.prototype.indexOf.call(obj, 2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js new file mode 100644 index 0000000000..5286d5b015 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.14-9-b-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + + var arr = []; + try { + Array.prototype[0] = false; + Object.defineProperty(arr, "0", { + get: function () { + return true; + }, + configurable: true + }); + + return 0 === arr.indexOf(true); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js new file mode 100644 index 0000000000..1e5709b88d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.14-9-b-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + var obj = { length: 1 }; + + try { + Object.prototype[0] = false; + Object.defineProperty(obj, "0", { + get: function () { + return true; + }, + configurable: true + }); + + return 0 === Array.prototype.indexOf.call(obj, true); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js new file mode 100644 index 0000000000..94b1a0c4b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.14-9-b-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var arr = []; + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return false; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + return true; + }, + configurable: true + }); + + return 0 === arr.indexOf(true); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js new file mode 100644 index 0000000000..fe1ff69605 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.14-9-b-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var obj = { length: 1 }; + + try { + Object.defineProperty(Object.prototype, "0", { + get: function () { + return false; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + return true; + }, + configurable: true + }); + + return 0 === Array.prototype.indexOf.call(obj, true); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js new file mode 100644 index 0000000000..00aafee3ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.14-9-b-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js", + + description: "Array.prototype.indexOf - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 10; + }, + configurable: true + }); + + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 20; + }, + configurable: true + }); + + Object.defineProperty(Array.prototype, "2", { + get: function () { + return 30; + }, + configurable: true + }); + + return 0 === [, , , ].indexOf(10) && + 1 === [, , , ].indexOf(20) && + 2 === [, , , ].indexOf(30); + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js new file mode 100644 index 0000000000..0d21f9fbd5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.14-9-b-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js", + + description: "Array.prototype.indexOf - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + try { + Object.defineProperty(Object.prototype, "0", { + get: function () { + return 10; + }, + configurable: true + }); + + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 20; + }, + configurable: true + }); + + Object.defineProperty(Object.prototype, "2", { + get: function () { + return 30; + }, + configurable: true + }); + + return 0 === Array.prototype.indexOf.call({ length: 3 }, 10) && + 1 === Array.prototype.indexOf.call({ length: 3 }, 20) && + 2 === Array.prototype.indexOf.call({ length: 3 }, 30); + } finally { + delete Object.prototype[0]; + delete Object.prototype[1]; + delete Object.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js new file mode 100644 index 0000000000..5982a4936a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.14-9-b-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + var arr = []; + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + return arr.indexOf(undefined) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js new file mode 100644 index 0000000000..ac008d150f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.14-9-b-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var obj = { length: 1 }; + Object.defineProperty(obj, "0", { + set: function () { }, + configurable: true + }); + + return 0 === Array.prototype.indexOf.call(obj, undefined); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js new file mode 100644 index 0000000000..7bb564ca35 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.14-9-b-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 2; + }, + configurable: true + }); + + return arr.indexOf(undefined) === 0; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js new file mode 100644 index 0000000000..693370e332 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.14-9-b-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js", + + description: "Array.prototype.indexOf - element to be retrieved is own data property on an Array", + + test: function testcase() { + return [true, true, true].indexOf(true) === 0 && + [false, true, true].indexOf(true) === 1 && + [false, false, true].indexOf(true) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js new file mode 100644 index 0000000000..6894abb625 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.14-9-b-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "0", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 1; + + Object.defineProperty(child, "0", { + set: function () { }, + configurable: true + }); + + return Array.prototype.indexOf.call(child, undefined) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js new file mode 100644 index 0000000000..c43a74074b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-9-b-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js", + + description: "Array.prototype.indexOf - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + set: function () { }, + configurable: true + }); + return 0 === [, ].indexOf(undefined); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js new file mode 100644 index 0000000000..893fbccccf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.14-9-b-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js", + + description: "Array.prototype.indexOf - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + try { + Object.defineProperty(Object.prototype, "0", { + set: function () { }, + configurable: true + }); + return 0 === Array.prototype.indexOf.call({ length: 1 }, undefined); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js new file mode 100644 index 0000000000..48462155d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.14-9-b-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js", + + description: "Array.prototype.indexOf - This object is the global object", + + test: function testcase() { + + var targetObj = {}; + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = targetObj; + fnGlobalObject()[100] = "100"; + fnGlobalObject()[200] = "200"; + fnGlobalObject().length = 200; + return 0 === Array.prototype.indexOf.call(fnGlobalObject(), targetObj) && + 100 === Array.prototype.indexOf.call(fnGlobalObject(), "100") && + -1 === Array.prototype.indexOf.call(fnGlobalObject(), "200"); + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[100]; + delete fnGlobalObject()[200]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js new file mode 100644 index 0000000000..84889ee50c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.14-9-b-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js", + + description: "Array.prototype.indexOf applied to Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + var func = function (a, b) { + return 0 === Array.prototype.indexOf.call(arguments, arguments[0]) && + -1 === Array.prototype.indexOf.call(arguments, arguments[1]); + }; + + return func(true); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js new file mode 100644 index 0000000000..27a3920d18 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-9-b-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js", + + description: "Array.prototype.indexOf applied to Arguments object which implements its own property get method (number of arguments equals to number of parameters)", + + test: function testcase() { + + var func = function (a, b) { + return 0 === Array.prototype.indexOf.call(arguments, arguments[0]) && + 1 === Array.prototype.indexOf.call(arguments, arguments[1]) && + -1 === Array.prototype.indexOf.call(arguments, arguments[2]); + }; + + return func(0, true); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js new file mode 100644 index 0000000000..badf19d6fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.14-9-b-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js", + + description: "Array.prototype.indexOf applied to Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var func = function (a, b) { + return 0 === Array.prototype.indexOf.call(arguments, arguments[0]) && + 3 === Array.prototype.indexOf.call(arguments, arguments[3]) && + -1 === Array.prototype.indexOf.call(arguments, arguments[4]); + }; + + return func(0, false, 0, true); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js new file mode 100644 index 0000000000..06f36a31e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.14-9-b-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js", + + description: "Array.prototype.indexOf - side-effects are visible in subsequent iterations on an Array", + + test: function testcase() { + + var preIterVisible = false; + var arr = []; + + Object.defineProperty(arr, "0", { + get: function () { + preIterVisible = true; + return false; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return true; + } else { + return false; + } + }, + configurable: true + }); + + return arr.indexOf(true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js new file mode 100644 index 0000000000..edb72d3081 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.14-9-b-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js", + + description: "Array.prototype.indexOf - side-effects are visible in subsequent iterations on an Array-like object", + + test: function testcase() { + + var preIterVisible = false; + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + preIterVisible = true; + return false; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return true; + } else { + return false; + } + }, + configurable: true + }); + + return Array.prototype.indexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.js new file mode 100644 index 0000000000..eec32c0db4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.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: "15.4.4.14-9-b-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.js", + + description: "Array.prototype.indexOf - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + try { + Array.prototype[0] = false; + return [true].indexOf(true) === 0; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js new file mode 100644 index 0000000000..b0ab76e0fb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.14-9-b-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js", + + description: "Array.prototype.indexOf - terminates iteration on unhandled exception on an Array", + + test: function testcase() { + + var accessed = false; + var arr = []; + + Object.defineProperty(arr, "0", { + get: function () { + throw new TypeError(); + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + accessed = true; + return true; + }, + configurable: true + }); + + try { + arr.indexOf(true); + return false; + } catch (e) { + return (e instanceof TypeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js new file mode 100644 index 0000000000..dcacfc942d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.14-9-b-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js", + + description: "Array.prototype.indexOf - terminates iteration on unhandled exception on an Array-like object", + + test: function testcase() { + + var accessed = false; + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + throw new TypeError(); + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + accessed = true; + return true; + }, + configurable: true + }); + + try { + Array.prototype.indexOf.call(obj, true); + return false; + } catch (e) { + return (e instanceof TypeError) && !accessed; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js new file mode 100644 index 0000000000..eaaf8b661e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.14-9-b-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js", + + description: "Array.prototype.indexOf - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + try { + Object.prototype[0] = false; + return 0 === Array.prototype.indexOf.call({ 0: true, 1: 1, length: 2 }, true); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js new file mode 100644 index 0000000000..12fafcc056 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.14-9-b-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js", + + description: "Array.prototype.indexOf - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return false; + }, + configurable: true + }); + return 0 === [true].indexOf(true); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js new file mode 100644 index 0000000000..ff3bf9a9e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.14-9-b-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js", + + description: "Array.prototype.indexOf - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + try { + Object.defineProperty(Object.prototype, "0", { + get: function () { + return false; + }, + configurable: true + }); + return 0 === Array.prototype.indexOf.call({ 0: true, 1: 1, length: 2 }, true); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js new file mode 100644 index 0000000000..6ba3950bd0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.14-9-b-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js", + + description: "Array.prototype.indexOf - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + try { + Array.prototype[0] = true; + Array.prototype[1] = false; + Array.prototype[2] = "true"; + return 0 === [, , , ].indexOf(true) && + 1 === [, , , ].indexOf(false) && + 2 === [, , , ].indexOf("true"); + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js new file mode 100644 index 0000000000..c9d9c8efbd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.14-9-b-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js", + + description: "Array.prototype.indexOf - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + try { + Object.prototype[0] = true; + Object.prototype[1] = false; + Object.prototype[2] = "true"; + return 0 === Array.prototype.indexOf.call({ length: 3 }, true) && + 1 === Array.prototype.indexOf.call({ length: 3 }, false) && + 2 === Array.prototype.indexOf.call({ length: 3 }, "true"); + } finally { + delete Object.prototype[0]; + delete Object.prototype[1]; + delete Object.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js new file mode 100644 index 0000000000..cb02ed2c7c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.14-9-b-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js", + + description: "Array.prototype.indexOf - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + var arr = [, , , ]; + Object.defineProperty(arr, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + Object.defineProperty(arr, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + return arr.indexOf(0) === 0 && arr.indexOf(1) === 1 && arr.indexOf(2) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js new file mode 100644 index 0000000000..10a568899f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.14-9-b-ii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js", + + description: "Array.prototype.indexOf - type of array element is different from type of search element", + + test: function testcase() { + + return ["true"].indexOf(true) === -1 && + ["0"].indexOf(0) === -1 && + [false].indexOf(0) === -1 && + [undefined].indexOf(0) === -1 && + [null].indexOf(0) === -1 && + [[]].indexOf(0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js new file mode 100644 index 0000000000..1df3664528 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.14-9-b-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js", + + description: "Array.prototype.indexOf - both array element and search element are Boolean type, and they have same value", + test: function testcase() { + + return [false, true].indexOf(true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.js new file mode 100644 index 0000000000..6f22edbd45 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.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: "15.4.4.14-9-b-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.js", + + description: "Array.prototype.indexOf - both array element and search element are Object type, and they refer to the same object", + test: function testcase() { + + var obj1 = {}; + var obj2 = {}; + var obj3 = obj2; + return [{}, obj1, obj2].indexOf(obj3) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js new file mode 100644 index 0000000000..c8f5766db1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-9-b-ii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js", + + description: "Array.prototype.indexOf - both type of array element and type of search element are Undefined", + + test: function testcase() { + + return [undefined].indexOf() === 0 && [undefined].indexOf(undefined) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js new file mode 100644 index 0000000000..4a52228e45 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-9-b-ii-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js", + + description: "Array.prototype.indexOf - both type of array element and type of search element are null", + + test: function testcase() { + + return [null].indexOf(null) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js new file mode 100644 index 0000000000..31dcd85842 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.14-9-b-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js", + + description: "Array.prototype.indexOf - search element is NaN", + test: function testcase() { + + return [+NaN, NaN, -NaN].indexOf(NaN) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js new file mode 100644 index 0000000000..982c510245 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.14-9-b-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js", + + description: "Array.prototype.indexOf - search element is -NaN", + test: function testcase() { + + return [+NaN, NaN, -NaN].indexOf(-NaN) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js new file mode 100644 index 0000000000..b7b2a8dbd3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.14-9-b-ii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js", + + description: "Array.prototype.indexOf - array element is +0 and search element is -0", + test: function testcase() { + + return [+0].indexOf(-0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js new file mode 100644 index 0000000000..f9d0895ef2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.14-9-b-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js", + + description: "Array.prototype.indexOf - array element is -0 and search element is +0", + test: function testcase() { + + return [-0].indexOf(+0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js new file mode 100644 index 0000000000..f64380c990 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.14-9-b-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js", + + description: "Array.prototype.indexOf - both array element and search element are Number, and they have same value", + test: function testcase() { + + return [-1, 0, 1].indexOf(1) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js new file mode 100644 index 0000000000..7c2a1fbafa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.14-9-b-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js", + + description: "Array.prototype.indexOf - both array element and search element are String, and they have exactly the same sequence of characters", + test: function testcase() { + + return ["", "ab", "bca", "abc"].indexOf("abc") === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js new file mode 100644 index 0000000000..7f30a9b0cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.14-9-b-iii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js", + + description: "Array.prototype.indexOf - returns index of last one when more than two elements in array are eligible", + + test: function testcase() { + + return [1, 2, 2, 1, 2].indexOf(2) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js new file mode 100644 index 0000000000..a3e635f75c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.14-9-b-iii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js", + + description: "Array.prototype.indexOf - returns without visiting subsequent element once search value is found", + + test: function testcase() { + var arr = [1, 2, , 1, 2]; + var elementThirdAccessed = false; + var elementFifthAccessed = false; + + Object.defineProperty(arr, "2", { + get: function () { + elementThirdAccessed = true; + return 2; + }, + configurable: true + }); + Object.defineProperty(arr, "4", { + get: function () { + elementFifthAccessed = true; + return 2; + }, + configurable: true + }); + + arr.indexOf(2); + return !elementThirdAccessed && !elementFifthAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js new file mode 100644 index 0000000000..55ae3ab20b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.4.4.15-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js", + +description: "Array.prototype.lastIndexOf must exist as a function", + +test: function testcase() { + var f = Array.prototype.lastIndexOf; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js new file mode 100644 index 0000000000..54bdd49115 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js", + +description: "Array.prototype.lastIndexOf has a length property whose value is 1.", + +test: function testcase() { + if (Array.prototype.lastIndexOf.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js new file mode 100644 index 0000000000..0ebf2da1ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js", + + description: "Array.prototype.lastIndexOf applied to undefined throws a TypeError", + + test: function testcase() { + + try { + Array.prototype.lastIndexOf.call(undefined); + return false; + } catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js new file mode 100644 index 0000000000..409433e00d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js", + + description: "Array.prototype.lastIndexOf applied to the Math object", + + test: function testcase() { + + try { + Math.length = 2; + Math[1] = 100; + return 1 === Array.prototype.lastIndexOf.call(Math, 100); + } finally { + delete Math.length; + delete Math[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js new file mode 100644 index 0000000000..58b7b76501 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.15-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js", + + description: "Array.prototype.lastIndexOf applied to Date object", + + test: function testcase() { + + var obj = new Date(); + obj.length = 2; + obj[1] = true; + + return Array.prototype.lastIndexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js new file mode 100644 index 0000000000..85d976a32e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.15-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js", + + description: "Array.prototype.lastIndexOf applied to RegExp object", + + test: function testcase() { + + var obj = new RegExp("afdasf"); + obj.length = 100; + obj[1] = "afdasf"; + + return Array.prototype.lastIndexOf.call(obj, "afdasf") === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js new file mode 100644 index 0000000000..f91c72f095 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.15-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js", + + description: "Array.prototype.lastIndexOf applied to the JSON object", + + test: function testcase() { + + var targetObj = {}; + try { + JSON[3] = targetObj; + JSON.length = 5; + return 3 === Array.prototype.lastIndexOf.call(JSON, targetObj); + } finally { + delete JSON[3]; + delete JSON.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js new file mode 100644 index 0000000000..477c0b69ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.15-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js", + + description: "Array.prototype.lastIndexOf applied to Error object", + + test: function testcase() { + + var obj = new SyntaxError(); + obj.length = 2; + obj[1] = Infinity; + + return Array.prototype.lastIndexOf.call(obj, Infinity) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js new file mode 100644 index 0000000000..d68b7e5265 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.15-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js", + + description: "Array.prototype.lastIndexOf applied to the Arguments object", + + test: function testcase() { + + var obj = (function fun() { + return arguments; + }(1, 2, 3)); + + return Array.prototype.lastIndexOf.call(obj, 2) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js new file mode 100644 index 0000000000..bf6eaa40da --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.15-1-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js", + + description: "Array.prototype.lastIndexOf applied to the global object", + + test: function testcase() { + var targetObj = ["global"]; + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[1] = targetObj; + fnGlobalObject().length = 3; + return 1 === Array.prototype.lastIndexOf.call(fnGlobalObject(), targetObj); + } finally { + delete fnGlobalObject()[1]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js new file mode 100644 index 0000000000..94c81443bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js", + + description: "Array.prototype.lastIndexOf applied to null throws a TypeError", + + test: function testcase() { + + try { + Array.prototype.lastIndexOf.call(null); + return false; + } catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js new file mode 100644 index 0000000000..59c76d72e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.15-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js", + + description: "Array.prototype.lastIndexOf applied to boolean primitive", + + test: function testcase() { + + try { + Boolean.prototype[1] = true; + Boolean.prototype.length = 2; + + return 1 === Array.prototype.lastIndexOf.call(true, true); + } finally { + delete Boolean.prototype[1]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js new file mode 100644 index 0000000000..1b0728bf16 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.15-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js", + + description: "Array.prototype.lastIndexOf applied to Boolean object", + + test: function testcase() { + + var obj = new Boolean(false); + obj.length = 2; + obj[1] = true; + + return Array.prototype.lastIndexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js new file mode 100644 index 0000000000..33a0b9b7fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js", + + description: "Array.prototype.lastIndexOf applied to number primitive", + + test: function testcase() { + + try { + Number.prototype[1] = isNaN; + Number.prototype.length = 2; + return 1 === Array.prototype.lastIndexOf.call(5, isNaN); + } finally { + delete Number.prototype[1]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js new file mode 100644 index 0000000000..138326fa1a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.15-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js", + + description: "Array.prototype.lastIndexOf applied to Number object", + + test: function testcase() { + + var obj = new Number(-3); + obj.length = 2; + obj[1] = true; + + return Array.prototype.lastIndexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js new file mode 100644 index 0000000000..9b238ca7ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js", + + description: "Array.prototype.lastIndexOf applied to string primitive", + + test: function testcase() { + + return Array.prototype.lastIndexOf.call("abc", "c") === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.js new file mode 100644 index 0000000000..a6a5b9769e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.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: "15.4.4.15-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.js", + + description: "Array.prototype.lastIndexOf applied to String object", + + test: function testcase() { + + var obj = new String("undefined"); + + return Array.prototype.lastIndexOf.call(obj, "f") === 4; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js new file mode 100644 index 0000000000..74bbd42358 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.15-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js", + + description: "Array.prototype.lastIndexOf applied to Function object", + + test: function testcase() { + + var obj = function (a, b) { + return a + b; + }; + obj[1] = true; + + return Array.prototype.lastIndexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.js new file mode 100644 index 0000000000..fea8041938 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.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: "15.4.4.15-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.js", + + description: "Array.prototype.lastIndexOf - 'length' is own data property on an Array-like object", + + test: function testcase() { + var obj = { 1: null, 2: undefined, length: 2 }; + + return Array.prototype.lastIndexOf.call(obj, null) === 1 && + Array.prototype.lastIndexOf.call(obj, undefined) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.js new file mode 100644 index 0000000000..3fc9d662f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.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: "15.4.4.15-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.js", + + description: "Array.prototype.lastIndexOf - 'length' is inherited accessor property on an Array-like object", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child[1] = 1; + child[2] = 2; + + return Array.prototype.lastIndexOf.call(child, 1) === 1 && + Array.prototype.lastIndexOf.call(child, 2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js new file mode 100644 index 0000000000..3c8534c989 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.15-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js", + + description: "Array.prototype.lastIndexOf - 'length' is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var obj = { 0: 1 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.lastIndexOf.call(obj, 1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.js new file mode 100644 index 0000000000..49d09bbab3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.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: "15.4.4.15-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.js", + + description: "Array.prototype.lastIndexOf - 'length' is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 20; + }, + configurable: true + }); + + var obj = { 1: 1 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.lastIndexOf.call(obj, 1) === -1; + } finally { + delete Object.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js new file mode 100644 index 0000000000..acddb12be3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.15-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js", + + description: "Array.prototype.lastIndexOf - 'length' is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child[0] = true; + + return Array.prototype.lastIndexOf.call(child, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.js new file mode 100644 index 0000000000..e6be2acf1c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.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: "15.4.4.15-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.js", + + description: "Array.prototype.lastIndexOf - 'length' is undefined property on an Array-like object", + + test: function testcase() { + + var obj = { 0: null, 1: undefined }; + + return Array.prototype.lastIndexOf.call(obj, null) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js new file mode 100644 index 0000000000..086e44c4f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.15-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js", + + description: "Array.prototype.lastIndexOf - 'length' is property of the global object", + + test: function testcase() { + var targetObj = {}; + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject().length = 2; + + fnGlobalObject()[1] = targetObj; + if (Array.prototype.lastIndexOf.call(fnGlobalObject(), targetObj) !== 1) { + return false; + } + + fnGlobalObject()[1] = {}; + fnGlobalObject()[2] = targetObj; + + return Array.prototype.lastIndexOf.call(fnGlobalObject(), targetObj) === -1; + } finally { + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js new file mode 100644 index 0000000000..6942783f61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js", + + description: "Array.prototype.lastIndexOf applied to Arguments object which implements its own property get method", + + test: function testcase() { + + var targetObj = function () { }; + var func = function (a, b) { + arguments[2] = function () { }; + return Array.prototype.lastIndexOf.call(arguments, targetObj) === 1 && + Array.prototype.lastIndexOf.call(arguments, arguments[2]) === -1; + }; + + return func(0, targetObj); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js new file mode 100644 index 0000000000..0aaee133a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js", + + description: "Array.prototype.lastIndexOf applied to String object which implements its own property get method", + + test: function testcase() { + + var str = new String("012"); + try { + String.prototype[3] = "3"; + return Array.prototype.lastIndexOf.call(str, "2") === 2 && + Array.prototype.lastIndexOf.call(str, "3") === -1; + } finally { + delete String.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js new file mode 100644 index 0000000000..b159d785e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js", + + description: "Array.prototype.lastIndexOf applied to String object which implements its own property get method", + + test: function testcase() { + + var obj = function (a, b) { + return a + b; + }; + obj[1] = "b"; + obj[2] = "c"; + + return Array.prototype.lastIndexOf.call(obj, obj[1]) === 1 && + Array.prototype.lastIndexOf.call(obj, obj[2]) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js new file mode 100644 index 0000000000..c4fabcbbeb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.15-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js", + + description: "Array.prototype.lastIndexOf - 'length' is own data property on an Array", + + test: function testcase() { + var targetObj = {}; + try { + Array.prototype[2] = targetObj; + + return [0, targetObj].lastIndexOf(targetObj) === 1 && + [0, 1].lastIndexOf(targetObj) === -1; + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js new file mode 100644 index 0000000000..2409d5b786 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.15-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js", + + description: "Array.prototype.lastIndexOf - 'length' is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var proto = {length: 0}; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[1] = child; + + return Array.prototype.lastIndexOf.call(child, child) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js new file mode 100644 index 0000000000..5a68a1d202 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js", + + description: "Array.prototype.lastIndexOf when 'length' is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var targetObj = {}; + var arrProtoLen; + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + return [0, targetObj, 2].lastIndexOf(targetObj) === 1; + } finally { + Array.prototype.length = arrProtoLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js new file mode 100644 index 0000000000..b6f600fdbe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.15-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js", + + description: "Array.prototype.lastIndexOf - 'length' is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "length", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + child[1] = null; + + return Array.prototype.lastIndexOf.call(child, null) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js new file mode 100644 index 0000000000..de309337ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.15-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js", + + description: "Array.prototype.lastIndexOf - 'length' is an inherited data property on an Array-like object", + + test: function testcase() { + + var proto = { length: 2 }; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child[1] = "x"; + child[2] = "y"; + + return Array.prototype.lastIndexOf.call(child, "x") === 1 && + Array.prototype.lastIndexOf.call(child, "y") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js new file mode 100644 index 0000000000..9fdf112717 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.15-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js", + + description: "Array.prototype.lastIndexOf - 'length' is own accessor property on an Array-like object", + + test: function testcase() { + + var obj = { 1: true, 2: false }; + + Object.defineProperty(obj, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + return Array.prototype.lastIndexOf.call(obj, true) === 1 && + Array.prototype.lastIndexOf.call(obj, false) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js new file mode 100644 index 0000000000..7016bac46d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js", + + description: "Array.prototype.lastIndexOf - 'length' is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var proto = { length: 0 }; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child[1] = eval; + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + return Array.prototype.lastIndexOf.call(child, eval) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js new file mode 100644 index 0000000000..b0c8be5b58 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.15-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js", + + description: "Array.prototype.lastIndexOf - 'length' is own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + var proto = {}; + Object.defineProperty(proto, "length", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child[1] = true; + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + return Array.prototype.lastIndexOf.call(child, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.js new file mode 100644 index 0000000000..64443c5840 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.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: "15.4.4.15-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is undefined", + + test: function testcase() { + + var obj = { 0: 1, 1: 1, length: undefined }; + + return Array.prototype.lastIndexOf.call(obj, 1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.js new file mode 100644 index 0000000000..5e23f7c977 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.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: "15.4.4.15-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is NaN)", + + test: function testcase() { + + var obj = { 0: 0, length: NaN }; + + return Array.prototype.lastIndexOf.call(obj, 0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.js new file mode 100644 index 0000000000..7b065b55f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.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: "15.4.4.15-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a string containing positive number", + + test: function testcase() { + + var obj = {1: true, 2: false, length: "2"}; + + return Array.prototype.lastIndexOf.call(obj, true) === 1 && + Array.prototype.lastIndexOf.call(obj, false) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js new file mode 100644 index 0000000000..60b51280d5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.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: "15.4.4.15-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a string containing negative number", + + test: function testcase() { + + var obj = {1: null, 2: undefined, length: "-4294967294"}; + + return Array.prototype.lastIndexOf.call(obj, null) === 1 && + Array.prototype.lastIndexOf.call(obj, undefined) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.js new file mode 100644 index 0000000000..6f38e63b83 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.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: "15.4.4.15-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a string containing a decimal number", + + test: function testcase() { + + var obj = { 4: 4, 5: 5, length: "5.512345" }; + + return Array.prototype.lastIndexOf.call(obj, 4) === 4 && + Array.prototype.lastIndexOf.call(obj, 5) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js new file mode 100644 index 0000000000..813ac8ca5f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.15-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a string containing +/-Infinity", + + test: function testcase() { + + var objOne = { 0: true, 1: true, length: "Infinity" }; + var objTwo = { 0: true, 1: true, length: "+Infinity" }; + var objThree = { 0: true, 1: true, length: "-Infinity" }; + + return Array.prototype.lastIndexOf.call(objOne, true) === -1 && + Array.prototype.lastIndexOf.call(objTwo, true) === -1 && + Array.prototype.lastIndexOf.call(objThree, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.js new file mode 100644 index 0000000000..0827ee2cd8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.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: "15.4.4.15-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a string containing an exponential number", + + test: function testcase() { + + var obj = {229: 229, 230: 2.3E2, length: "2.3E2"}; + + return Array.prototype.lastIndexOf.call(obj, 229) === 229 && + Array.prototype.lastIndexOf.call(obj, 2.3E2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.js new file mode 100644 index 0000000000..e516ba1b00 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.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: "15.4.4.15-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a string which is able to be converted into hex number", + + test: function testcase() { + + var obj = { 2573: 2573, 2574: 0x000A0E, length: "0x000A0E" }; + + return Array.prototype.lastIndexOf.call(obj, 2573) === 2573 && + Array.prototype.lastIndexOf.call(obj, 0x000A0E) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.js new file mode 100644 index 0000000000..13f7dcb07f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.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: "15.4.4.15-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a string containing a number with leading zeros", + + test: function testcase() { + + var obj = { 1: 1, 2: 2, length: "0002.0" }; + + return Array.prototype.lastIndexOf.call(obj, 1) === 1 && + Array.prototype.lastIndexOf.call(obj, 2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.js new file mode 100644 index 0000000000..9014679ebf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.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: "15.4.4.15-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + var targetObj = new String("123abc123"); + var obj = { 0: targetObj, length: "123abc123" }; + + return Array.prototype.lastIndexOf.call(obj, targetObj) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js new file mode 100644 index 0000000000..6393a87c3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.15-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is an Object which has an own toString method", + + test: function testcase() { + + // objects inherit the default valueOf() method from Object + // that simply returns itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + var targetObj = fnGlobalObject(); + var obj = { + 1: targetObj, + 2: 2, + + length: { + toString: function () { + return '2'; + } + } + }; + + return Array.prototype.lastIndexOf.call(obj, targetObj) === 1 && + Array.prototype.lastIndexOf.call(obj, 2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.js new file mode 100644 index 0000000000..554cf97c05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.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: "15.4.4.15-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.js", + + description: "Array.prototype.lastIndexOf return -1 when value of 'length' is a boolean (value is true)", + + test: function testcase() { + var obj = { 0: 0, 1: 1, length: true }; + return Array.prototype.lastIndexOf.call(obj, 0) === 0 && + Array.prototype.lastIndexOf.call(obj, 1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js new file mode 100644 index 0000000000..49b3c14772 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.15-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is an Object which has an own valueOf method", + + test: function testcase() { + + //valueOf method will be invoked first, since hint is Number + var obj = { + 1: true, + 2: 2, + + length: { + valueOf: function () { + return 2; + } + } + }; + + return Array.prototype.lastIndexOf.call(obj, true) === 1 && + Array.prototype.lastIndexOf.call(obj, 2) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js new file mode 100644 index 0000000000..dbef906e85 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.15-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js", + + description: "Array.prototype.lastIndexOf - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var targetObj = this; + var obj = { + 1: targetObj, + length: { + toString: function () { + toStringAccessed = true; + return '3'; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + } + }; + + return Array.prototype.lastIndexOf.call(obj, targetObj) === 1 && toStringAccessed && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js new file mode 100644 index 0000000000..681c16b2e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.15-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js", + + description: "Array.prototype.lastIndexOf throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var obj = { + 1: true, + length: { + toString: function () { + toStringAccessed = true; + return {}; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + } + }; + + try { + Array.prototype.lastIndexOf.call(obj, true); + return false; + } catch (e) { + return toStringAccessed && valueOfAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js new file mode 100644 index 0000000000..f9dc0f25ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.15-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js", + + description: "Array.prototype.lastIndexOf uses inherited valueOf method when 'length' is an object with an own toString and an inherited valueOf methods", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child.toString = function () { + toStringAccessed = true; + return 2; + }; + + var obj = { + 1: child, + length: child + }; + + return Array.prototype.lastIndexOf.call(obj, child) === 1 && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.js new file mode 100644 index 0000000000..8244a562e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.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: "15.4.4.15-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + var obj = { 122: true, 123: false, length: 123.5 }; + + return Array.prototype.lastIndexOf.call(obj, true) === 122 && + Array.prototype.lastIndexOf.call(obj, false) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js new file mode 100644 index 0000000000..e7b98ff57d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.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: "15.4.4.15-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + var obj = { 1: true, 2: false, length: -4294967294.5 }; + + return Array.prototype.lastIndexOf.call(obj, true) === 1 && + Array.prototype.lastIndexOf.call(obj, false) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js new file mode 100644 index 0000000000..00b16eb9be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is boundary value (2^32)", + + test: function testcase() { + + var targetObj = {}; + var obj = { + 0: targetObj, + 4294967294: targetObj, + 4294967295: targetObj, + length: 4294967296 + }; + + return Array.prototype.lastIndexOf.call(obj, targetObj) === -1; //verify length is 0 finally + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js new file mode 100644 index 0000000000..df5a0f5a8d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + + var targetObj = {}; + var obj = { + 0: targetObj, + 1: 4294967297, + length: 4294967297 + }; + + return Array.prototype.lastIndexOf.call(obj, targetObj) === 0 && + Array.prototype.lastIndexOf.call(obj, 4294967297) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.js new file mode 100644 index 0000000000..00f50b3c51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.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: "15.4.4.15-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is 0)", + + test: function testcase() { + + var obj = { 0: "undefined", length: 0 }; + + return Array.prototype.lastIndexOf.call(obj, "undefined") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.js new file mode 100644 index 0000000000..d8756ee608 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.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: "15.4.4.15-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is -0)", + + test: function testcase() { + + var obj = { 0: true, length: -0 }; + + return Array.prototype.lastIndexOf.call(obj, true) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.js new file mode 100644 index 0000000000..3d8f998547 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.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: "15.4.4.15-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is +0)", + + test: function testcase() { + + var obj = { 0: +0, length: +0 }; + + return Array.prototype.lastIndexOf.call(obj, +0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.js new file mode 100644 index 0000000000..59e83fcdc5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.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: "15.4.4.15-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is a positive number)", + + test: function testcase() { + + var obj = { 99: true, 100: 100, length: 100 }; + + return Array.prototype.lastIndexOf.call(obj, true) === 99 && + Array.prototype.lastIndexOf.call(obj, 100) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js new file mode 100644 index 0000000000..39006a8ed4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.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: "15.4.4.15-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is a negative number)", + + test: function testcase() { + + var obj = { 4: -Infinity, 5: Infinity, length: 5 - Math.pow(2, 32) }; + + return Array.prototype.lastIndexOf.call(obj, -Infinity) === 4 && + Array.prototype.lastIndexOf.call(obj, Infinity) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js new file mode 100644 index 0000000000..251fd34dc4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.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: "15.4.4.15-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + + var obj = { 0: 0, length: Infinity }; + + return Array.prototype.lastIndexOf.call(obj, 0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.js new file mode 100644 index 0000000000..3af32c956f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.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: "15.4.4.15-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.js", + + description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + + var obj = { 0: 0, length: -Infinity }; + + return Array.prototype.lastIndexOf.call(obj, 0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js new file mode 100644 index 0000000000..4129c6e56e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (empty array)", + +test: function testcase() { + var i = [].lastIndexOf(42); + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js new file mode 100644 index 0000000000..6a005c6ef8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js", + + description: "Array.prototype.lastIndexOf - 'length' is a number of value -6e-1", + + test: function testcase() { + var targetObj = []; + var obj = { 0: targetObj, 100: targetObj, length: -6e-1 }; + return Array.prototype.lastIndexOf.call(obj, targetObj) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js new file mode 100644 index 0000000000..6ef6ccc019 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js", + + description: "Array.prototype.lastIndexOf - 'length' is an empty string", + + test: function testcase() { + var targetObj = []; + var obj = { 0: targetObj, 100: targetObj, length: "" }; + return Array.prototype.lastIndexOf.call(obj, targetObj) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.js new file mode 100644 index 0000000000..56810e97ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.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: "15.4.4.15-4-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 ( length overridden to null (type conversion))", + +test: function testcase() { + + var i = Array.prototype.lastIndexOf.call({length: null}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.js new file mode 100644 index 0000000000..752c5162cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.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: "15.4.4.15-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (length overridden to false (type conversion))", + +test: function testcase() { + + var i = Array.prototype.lastIndexOf.call({length: false}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js new file mode 100644 index 0000000000..ba2738d92e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.15-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (generic 'array' with length 0 )", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + var i = Array.prototype.lastIndexOf.call({length: 0}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.js new file mode 100644 index 0000000000..de3576f285 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.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: "15.4.4.15-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 ( length overridden to '0' (type conversion))", + +test: function testcase() { + + var i = Array.prototype.lastIndexOf.call({length: '0'}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.js new file mode 100644 index 0000000000..77862525d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.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: "15.4.4.15-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)", + +test: function testcase() { + + var i = Array.prototype.lastIndexOf.call({length: { valueOf: function () { return 0;}}}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js new file mode 100644 index 0000000000..54a4fea968 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.15-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 ( length is object overridden with obj w/o valueOf (toString))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + var i = Array.prototype.lastIndexOf.call({length: { toString: function () { return '0';}}}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js new file mode 100644 index 0000000000..59c2b23904 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.15-4-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (length is an empty array)", + +test: function testcase() { + + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + var i = Array.prototype.lastIndexOf.call({length: [ ]}, 1); + + if (i === -1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js new file mode 100644 index 0000000000..2652ae8299 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js", + + description: "Array.prototype.lastIndexOf - 'length' is a number of value 0.1", + + test: function testcase() { + var targetObj = []; + var obj = { 0: targetObj, 100: targetObj, length: 0.1 }; + return Array.prototype.lastIndexOf.call(obj, targetObj) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js new file mode 100644 index 0000000000..17a3c062c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js", + +description: "Array.prototype.lastIndexOf when fromIndex is string", + +test: function testcase() { + var a = new Array(0,1,1); + if (a.lastIndexOf(1,"1") === 1 && // "1" resolves to 1 + a.lastIndexOf(1,"one") === -1) { // NaN string resolves to 0 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js new file mode 100644 index 0000000000..a996155cdb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is positive number)", + + test: function testcase() { + var targetObj = {}; + return [0, targetObj, true].lastIndexOf(targetObj, 1.5) === 1 && + [0, true, targetObj].lastIndexOf(targetObj, 1.5) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js new file mode 100644 index 0000000000..90688bca32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is negative number)", + + test: function testcase() { + var targetObj = {}; + return [0, targetObj, true].lastIndexOf(targetObj, -2.5) === 1 && + [0, true, targetObj].lastIndexOf(targetObj, -2.5) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js new file mode 100644 index 0000000000..ad2b99ab89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is Infinity)", + + test: function testcase() { + var arr = []; + arr[Math.pow(2, 32) - 2] = null; // length is the max value of Uint type + return arr.lastIndexOf(null, Infinity) === (Math.pow(2, 32) - 2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js new file mode 100644 index 0000000000..624ffe32c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is -Infinity)", + + test: function testcase() { + + return [true].lastIndexOf(true, -Infinity) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.js new file mode 100644 index 0000000000..fc39daff3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.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: "15.4.4.15-5-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is NaN)", + + test: function testcase() { + + return [0, true].lastIndexOf(true, NaN) === -1 && // from Index will be convert to +0 + [true, 0].lastIndexOf(true, NaN) === 0 && + [0, true].lastIndexOf(true, -NaN) === -1 && + [true, 0].lastIndexOf(true, -NaN) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js new file mode 100644 index 0000000000..acc4055441 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing a negative number", + + test: function testcase() { + + return [0, "-2", 2].lastIndexOf("-2", "-2") === 1 && + [0, 2, "-2"].lastIndexOf("-2", "-2") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js new file mode 100644 index 0000000000..6d9053b41c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing Infinity", + + test: function testcase() { + var arr = []; + arr[Math.pow(2, 32) - 2] = true; // length is the max value of Uint type + return arr.lastIndexOf(true, "Infinity") === (Math.pow(2, 32) - 2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js new file mode 100644 index 0000000000..d2d14329f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-5-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing -Infinity", + + test: function testcase() { + + return [true].lastIndexOf(true, "-Infinity") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js new file mode 100644 index 0000000000..d401cfdede --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing an exponential number", + + test: function testcase() { + var targetObj = {}; + return [0, NaN, targetObj, 3, false].lastIndexOf(targetObj, "2E0") === 2 && + [0, NaN, 3, targetObj, false].lastIndexOf(targetObj, "2E0") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js new file mode 100644 index 0000000000..693d50304c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing a hex number", + + test: function testcase() { + var targetObj = {}; + return [0, true, targetObj, 3, false].lastIndexOf(targetObj, "0x0002") === 2 && + [0, true, 3, targetObj, false].lastIndexOf(targetObj, "0x0002") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.js new file mode 100644 index 0000000000..34a81513bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.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: "15.4.4.15-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.js", + +description: "Array.prototype.lastIndexOf when fromIndex is floating point number", + +test: function testcase() { + var a = new Array(1,2,1); + if (a.lastIndexOf(2,1.49) === 1 && // 1.49 resolves to 1 + a.lastIndexOf(2,0.51) === -1 && // 0.51 resolves to 0 + a.lastIndexOf(1,0.51) === 0){ // 0.51 resolves to 0 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js new file mode 100644 index 0000000000..e0173ca484 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' which is a string containing a number with leading zeros", + + test: function testcase() { + var targetObj = {}; + return [0, true, targetObj, 3, false].lastIndexOf(targetObj, "0002.10") === 2 && + [0, true, 3, targetObj, false].lastIndexOf(targetObj, "0002.10") === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js new file mode 100644 index 0000000000..98f03dcffb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.15-5-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' which is an Object, and has an own toString method", + + test: function testcase() { + + // objects inherit the default valueOf() method from Object + // that simply returns itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + var fromIndex = { + toString: function () { + return '2'; + } + }; + var targetObj = new RegExp(); + + return [0, true, targetObj, 3, false].lastIndexOf(targetObj, fromIndex) === 2 && + [0, true, 3, targetObj, false].lastIndexOf(targetObj, fromIndex) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js new file mode 100644 index 0000000000..a15a357a39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-5-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' which is an object, and has an own valueOf method", + + test: function testcase() { + + var fromIndex = { + valueOf: function () { + return 2; + } + }; + + var targetObj = function () {}; + return [0, true, targetObj, 3, false].lastIndexOf(targetObj, fromIndex) === 2 && + [0, true, 3, targetObj, false].lastIndexOf(targetObj, fromIndex) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js new file mode 100644 index 0000000000..4fcf52b0b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-5-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var fromIndex = { + toString: function () { + toStringAccessed = true; + return '1'; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + }; + + return [0, true].lastIndexOf(true, fromIndex) === 1 && toStringAccessed && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js new file mode 100644 index 0000000000..0e1978d92f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.15-5-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js", + + description: "Array.prototype.lastIndexOf throws TypeError exception when value of 'fromIndex' is an object that both toString and valueOf methods than don't return primitive value", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var fromIndex = { + toString: function () { + toStringAccessed = true; + return {}; + }, + + valueOf: function () { + valueOfAccessed = true; + return {}; + } + }; + + try { + [0, null].lastIndexOf(null, fromIndex); + return false; + } catch (e) { + return toStringAccessed && valueOfAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js new file mode 100644 index 0000000000..4f3e1a9d49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.15-5-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js", + + description: "Array.prototype.lastIndexOf use inherited valueOf method when value of 'fromIndex' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 1; + } + }; + + var Con = function () {}; + Con.prototype = proto; + + var child = new Con(); + child.toString = function () { + toStringAccessed = true; + return 1; + }; + + return [0, true].lastIndexOf(true, child) === 1 && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js new file mode 100644 index 0000000000..38d92a8d43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.15-5-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js", + + description: "Array.prototype.lastIndexOf - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var stepTwoOccurs = false; + var stepFiveOccurs = false; + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + stepTwoOccurs = true; + if (stepFiveOccurs) { + throw new Error("Step 5 occurred out of order"); + } + return 20; + }, + configurable: true + }); + + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.lastIndexOf.call(obj, undefined, fromIndex); + return stepTwoOccurs && stepFiveOccurs; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js new file mode 100644 index 0000000000..e904792d54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.15-5-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js", + + description: "Array.prototype.lastIndexOf - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var stepThreeOccurs = false; + var stepFiveOccurs = false; + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + return { + valueOf: function () { + stepThreeOccurs = true; + if (stepFiveOccurs) { + throw new Error("Step 5 occurred out of order"); + } + return 20; + } + }; + }, + configurable: true + }); + + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.lastIndexOf.call(obj, undefined, fromIndex); + return stepThreeOccurs && stepFiveOccurs; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js new file mode 100644 index 0000000000..afc3bb5123 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.15-5-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js", + + description: "Array.prototype.lastIndexOf - side effects produced by step 1 are visible when an exception occurs", + + test: function testcase() { + + var stepFiveOccurs = false; + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.lastIndexOf.call(undefined, undefined, fromIndex); + return false; + } catch (e) { + return (e instanceof TypeError) && !stepFiveOccurs; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js new file mode 100644 index 0000000000..3dc58007fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.15-5-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js", + + description: "Array.prototype.lastIndexOf - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var stepFiveOccurs = false; + + var obj = {}; + Object.defineProperty(obj, "length", { + get: function () { + throw new RangeError(); + }, + configurable: true + }); + + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.lastIndexOf.call(obj, undefined, fromIndex); + return false; + } catch (e) { + return (e instanceof RangeError) && !stepFiveOccurs; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js new file mode 100644 index 0000000000..d58e204be6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js", + +description: "Array.prototype.lastIndexOf when fromIndex is boolean", + +test: function testcase() { + var a = new Array(1,2,1); + if (a.lastIndexOf(2,true) === 1 && // true resolves to 1 + a.lastIndexOf(2,false) === -1 ) { // false resolves to 0 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js new file mode 100644 index 0000000000..a9d4d64f46 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.15-5-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js", + + description: "Array.prototype.lastIndexOf - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var stepFiveOccurs = false; + + var obj = {}; + Object.defineProperty(obj, "length", { + get: function () { + return { + valueOf: function () { + throw new TypeError(); + } + }; + }, + configurable: true + }); + + var fromIndex = { + valueOf: function () { + stepFiveOccurs = true; + return 0; + } + }; + + try { + Array.prototype.lastIndexOf.call(obj, undefined, fromIndex); + return false; + } catch (e) { + return (e instanceof TypeError) && !stepFiveOccurs; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js new file mode 100644 index 0000000000..0e5a544333 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js", + + description: "Array.prototype.lastIndexOf - 'fromIndex' is a positive non-integer, verify truncation occurs in the proper direction", + + test: function testcase() { + var targetObj = {}; + return [0, targetObj, true].lastIndexOf(targetObj, 1.5) === 1 && + [0, true, targetObj].lastIndexOf(targetObj, 1.5) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.js new file mode 100644 index 0000000000..6215888f4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.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: "15.4.4.15-5-32", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.js", + + description: "Array.prototype.lastIndexOf - 'fromIndex' is a negative non-integer, verify truncation occurs in the proper direction", + + test: function testcase() { + var targetObj = {}; + return [0, targetObj, true].lastIndexOf(targetObj, -2.5) === 1 && + [0, true, targetObj].lastIndexOf(targetObj, -2.5) === -1; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.js new file mode 100644 index 0000000000..37a0bdc873 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.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: "15.4.4.15-5-33", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.js", + + description: "Array.prototype.lastIndexOf - match on the first element, a middle element and the last element when 'fromIndex' is passed", + + test: function testcase() { + + return [0, 1, 2, 3, 4].lastIndexOf(0, 0) === 0 && + [0, 1, 2, 3, 4].lastIndexOf(0, 2) === 0 && + [0, 1, 2, 3, 4].lastIndexOf(2, 2) === 2 && + [0, 1, 2, 3, 4].lastIndexOf(2, 4) === 2 && + [0, 1, 2, 3, 4].lastIndexOf(4, 4) === 4; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.js new file mode 100644 index 0000000000..2afb1d6ab1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.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: "15.4.4.15-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.js", + +description: "Array.prototype.lastIndexOf when fromIndex is undefined", + +test: function testcase() { + var a = new Array(1,2,1); + if (a.lastIndexOf(2,undefined) === -1 && + a.lastIndexOf(1,undefined) === 0 && + a.lastIndexOf(1) === 2) { // undefined resolves to 0, no second argument resolves to len + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js new file mode 100644 index 0000000000..0755c48592 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js", + +description: "Array.prototype.lastIndexOf when fromIndex is null", + +test: function testcase() { + var a = new Array(1,2,1); + if (a.lastIndexOf(2,null) === -1 && a.lastIndexOf(1,null) === 0) { // null resolves to 0 + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.js new file mode 100644 index 0000000000..58b3d71a25 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.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: "15.4.4.15-5-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.js", + + description: "Array.prototype.lastIndexOf when 'fromIndex' isn't passed", + + test: function testcase() { + var arr = [0, 1, 2, 3, 4]; + //'fromIndex' will be set as 4 if not passed by default + return arr.lastIndexOf(0) === arr.lastIndexOf(0, 4) && + arr.lastIndexOf(2) === arr.lastIndexOf(2, 4) && + arr.lastIndexOf(4) === arr.lastIndexOf(4, 4); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js new file mode 100644 index 0000000000..4ea6f7556c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is 0)", + + test: function testcase() { + + return [0, 100].lastIndexOf(100, 0) === -1 && // verify fromIndex is not more than 0 + [200, 0].lastIndexOf(200, 0) === 0; // verify fromIndex is not less than 0 + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js new file mode 100644 index 0000000000..c2948de9db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is +0)", + + test: function testcase() { + + return [0, true].lastIndexOf(true, +0) === -1 && + [true, 0].lastIndexOf(true, +0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js new file mode 100644 index 0000000000..1281b1de9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js", + + description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is -0)", + + test: function testcase() { + + return [0, true].lastIndexOf(true, -0) === -1 && + [true, 0].lastIndexOf(true, -0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js new file mode 100644 index 0000000000..69f4a0d91d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-6-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js", + +description: "Array.prototype.lastIndexOf when fromIndex greater than Array.length", + +test: function testcase() { + var a = new Array(1,2,3); + if (a.lastIndexOf(3,5.4) === 2 && + a.lastIndexOf(3,3.1) === 2 ) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js new file mode 100644 index 0000000000..3b1d33cf5b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-6-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js", + + description: "Array.prototype.lastIndexOf returns correct index when 'fromIndex' is length of array - 1", + + test: function testcase() { + + return [1, 2, 3].lastIndexOf(3, 2) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js new file mode 100644 index 0000000000..4613e0c9d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-6-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js", + + description: "Array.prototype.lastIndexOf returns -1 when 'fromIndex' is length of array - 1", + + test: function testcase() { + + return [1, 2, 3].lastIndexOf(3, 1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js new file mode 100644 index 0000000000..62d8b6ff5b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-6-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js", + + description: "Array.prototype.lastIndexOf returns -1 when 'fromIndex' and 'length' are both 0", + + test: function testcase() { + + return [].lastIndexOf(1, 0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js new file mode 100644 index 0000000000..f2abf0508e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-6-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js", + + description: "Array.prototype.lastIndexOf returns -1 when 'fromIndex' is 1", + + test: function testcase() { + + return [1, 2, 3].lastIndexOf(3, 1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js new file mode 100644 index 0000000000..3aa587195a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-6-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js", + + description: "Array.prototype.lastIndexOf returns correct index when 'fromIndex' is 1", + + test: function testcase() { + + return [1, 2, 3].lastIndexOf(2, 1) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.js new file mode 100644 index 0000000000..874814d8be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.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: "15.4.4.15-7-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.js", + +description: "Array.prototype.lastIndexOf with negative fromIndex ", + +test: function testcase() { + var a = new Array(1,2,3); + + if (a.lastIndexOf(2,-2) === 1 && + a.lastIndexOf(2,-3) === -1 && + a.lastIndexOf(1,-5.3) === -1 ) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js new file mode 100644 index 0000000000..91163c64e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-7-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js", + + description: "Array.prototype.lastIndexOf returns correct index when 'fromIndex' is -1", + + test: function testcase() { + + return [1, 2, 3, 4].lastIndexOf(4, -1) === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js new file mode 100644 index 0000000000..817f69a182 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-7-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js", + + description: "Array.prototype.lastIndexOf returns -1 when abs('fromIndex') is length of array - 1", + + test: function testcase() { + + return [1, 2, 3, 4].lastIndexOf(3, -3) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js new file mode 100644 index 0000000000..d080133fcb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-7-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js", + + description: "Array.prototype.lastIndexOf returns -1 when abs('fromIndex') is length of array", + + test: function testcase() { + + return [1, 2, 3, 4].lastIndexOf(2, -4) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}) + diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.js new file mode 100644 index 0000000000..afa6f55414 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.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: "15.4.4.15-8-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.js", + +description: "Array.prototype.lastIndexOf must return correct index(boolean)", + +test: function testcase() { + var obj = {toString:function (){return true}}; + var _false = false; + var a = new Array(false,true,false,obj,_false,true,"true", undefined,0,null,1,"str",0,1); + if (a.lastIndexOf(true) === 5 && //a[5]=true + a.lastIndexOf(false) === 4) //a[4] =_false + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.js new file mode 100644 index 0000000000..610eab4b3e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.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. + +/** note that prior to the finally ES5 draft SameValue was used for comparisions +and hence NaNs could be found using lastIndexOf **/ + +ES5Harness.registerTest( { +id: "15.4.4.15-8-10", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.js", + +description: "Array.prototype.lastIndexOf must return correct index (NaN)", + +test: function testcase() { + var _NaN = NaN; + var a = new Array("NaN",_NaN,NaN, undefined,0,false,null,{toString:function (){return NaN}},"false"); + if (a.lastIndexOf(NaN) === -1) // NaN matches nothing, not even itself + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js new file mode 100644 index 0000000000..42ce50e992 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.15-8-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js", + + description: "Array.prototype.lastIndexOf - the length of iteration isn't changed by adding elements to the array during iteration", + + test: function testcase() { + + var arr = [20]; + + Object.defineProperty(arr, "0", { + get: function () { + arr[1] = 1; + return 0; + }, + configurable: true + }); + + return arr.lastIndexOf(1) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js new file mode 100644 index 0000000000..11965fb844 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.15-8-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js", + +description: "Array.prototype.lastIndexOf must return correct index(Number)", + +test: function testcase() { + var obj = {toString:function (){return 0}}; + var one = 1; + var _float = -(4/3); + var a = new Array(+0,true,0,-0, false,undefined,null,"0",obj, _float,-(4/3),-1.3333333333333,"str",one, 1, false); + if (a.lastIndexOf(-(4/3)) === 10 && // a[10]=-(4/3) + a.lastIndexOf(0) === 3 && // a[3] = -0, but using === -0 and 0 are equal + a.lastIndexOf(-0) ===3 && // a[3] = -0 + a.lastIndexOf(1) === 14 ) // a[14] = 1 + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.js new file mode 100644 index 0000000000..b061f4d574 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.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: "15.4.4.15-8-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.js", + +description: "Array.prototype.lastIndexOf must return correct index(string)", + +test: function testcase() { + var obj = {toString:function (){return "false"}}; + var szFalse = "false"; + var a = new Array(szFalse, "false","false1",undefined,0,false,null,1,obj,0); + if (a.lastIndexOf("false") === 1) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.js new file mode 100644 index 0000000000..922644a6fa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.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: "15.4.4.15-8-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.js", + +description: "Array.prototype.lastIndexOf must return correct index(undefined)", + +test: function testcase() { + var obj = {toString:function (){return undefined;}}; + var _undefined1 = undefined; + var _undefined2; + var a = new Array(_undefined1,_undefined2,undefined,true,0,false,null,1,"undefined",obj,1); + if (a.lastIndexOf(undefined) === 2) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.js new file mode 100644 index 0000000000..540285876f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.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: "15.4.4.15-8-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.js", + +description: "Array.prototype.lastIndexOf must return correct index(Object)", + +test: function testcase() { + var obj1 = {toString:function (){return "false"}}; + var obj2 = {toString:function (){return "false"}}; + var obj3 = obj1; + var a = new Array(obj2,obj1,obj3,false,undefined,0,false,null,{toString:function (){return "false"}},"false"); + if (a.lastIndexOf(obj3) === 2) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.js new file mode 100644 index 0000000000..af2b26ba22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.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: "15.4.4.15-8-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.js", + +description: "Array.prototype.lastIndexOf must return correct index(null)", + +test: function testcase() { + var obj = {toString:function (){return null}}; + var _null = null; + var a = new Array(true,undefined,0,false,null,1,"str",0,1,null,true,false,undefined,_null,"null",undefined,"str",obj); + if (a.lastIndexOf(null) === 13 ) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.js new file mode 100644 index 0000000000..40b38e5953 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.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: "15.4.4.15-8-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.js", + +description: "Array.prototype.lastIndexOf must return correct index (self reference)", + +test: function testcase() { + var a = new Array(0,1,2,3); + a[2] = a; + if (a.lastIndexOf(a) === 2 && + a.lastIndexOf(3) === 3 ) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.js new file mode 100644 index 0000000000..71ca39340d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.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: "15.4.4.15-8-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.js", + +description: "Array.prototype.lastIndexOf must return correct index (Array)", + +test: function testcase() { + var b = new Array("0,1"); + var a = new Array(0,b,"0,1",3); + if (a.lastIndexOf(b.toString()) === 2 && + a.lastIndexOf("0,1") === 2 ) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js new file mode 100644 index 0000000000..71cbe96ae3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.15-8-9", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js", + +description: "Array.prototype.lastIndexOf must return correct index (Sparse Array)", + +test: function testcase() { + var a = new Array(0,1); + a[4294967294] = 2; // 2^32-2 - is max array element index + a[4294967295] = 3; // 2^32-1 added as non-array element property + a[4294967296] = 4; // 2^32 added as non-array element property + a[4294967297] = 5; // 2^32+1 added as non-array element property + // stop searching near the end in case implementation actually tries to test all missing elements!! + a[4294967200] = 3; + a[4294967201] = 4; + a[4294967202] = 5; + + + return (a.lastIndexOf(2) === 4294967294 && + a.lastIndexOf(3) === 4294967200 && + a.lastIndexOf(4) === 4294967201 && + a.lastIndexOf(5) === 4294967202) ; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js new file mode 100644 index 0000000000..01afb958cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.15-8-a-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js", + + description: "Array.prototype.lastIndexOf - added properties in step 2 are visible here", + + test: function testcase() { + + var arr = { }; + + Object.defineProperty(arr, "length", { + get: function () { + arr[2] = "length"; + return 3; + }, + configurable: true + }); + + return 2 === Array.prototype.lastIndexOf.call(arr, "length"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js new file mode 100644 index 0000000000..da3bca0aa3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.15-8-a-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js", + + description: "Array.prototype.lastIndexOf - properties can be added to prototype after current position are visited on an Array", + + test: function testcase() { + + var arr = [0, , 2]; + + Object.defineProperty(arr, "2", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + return arr.lastIndexOf(6.99) === 1; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js new file mode 100644 index 0000000000..5cff73f6bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.15-8-a-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js", + + description: "Array.prototype.lastIndexOf - deleting own property causes index property not to be visited on an Array-like object", + + test: function testcase() { + + var arr = { length: 200 }; + + Object.defineProperty(arr, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(arr, "100", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + return -1 === Array.prototype.lastIndexOf.call(arr, 6.99); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js new file mode 100644 index 0000000000..dc740c886c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.15-8-a-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js", + + description: "Array.prototype.lastIndexOf - deleting own property causes index property not to be visited on an Array", + + test: function testcase() { + + var arr = [1, 2, 3, 4]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "3", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + return -1 === arr.lastIndexOf("6.99"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js new file mode 100644 index 0000000000..59838b1d6e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-8-a-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js", + + description: "Array.prototype.lastIndexOf - deleting property of prototype causes prototype index property not to be visited on an Array-like Object", + + test: function testcase() { + + var arr = { 2: 2, length: 20 }; + + Object.defineProperty(arr, "3", { + get: function () { + delete Object.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + return -1 === Array.prototype.lastIndexOf.call(arr, 1); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js new file mode 100644 index 0000000000..acc47567b6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-8-a-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js", + + description: "Array.prototype.lastIndexOf - deleting property of prototype causes prototype index property not to be visited on an Array", + + test: function testcase() { + + var arr = [0, , 2]; + + Object.defineProperty(arr, "20", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + return -1 === arr.lastIndexOf(1); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js new file mode 100644 index 0000000000..8e0324898c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-8-a-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js", + + description: "Array.prototype.lastIndexOf - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + + var arr = { 0: 0, 1: 111, 2: 2, length: 10 }; + + Object.defineProperty(arr, "6", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + return 1 === Array.prototype.lastIndexOf.call(arr, 1); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js new file mode 100644 index 0000000000..ccdd04599f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-8-a-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js", + + description: "Array.prototype.lastIndexOf - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + + var arr = [0, 111, 2]; + + Object.defineProperty(arr, "2", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + return 1 === arr.lastIndexOf(1); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js new file mode 100644 index 0000000000..81ba6ed987 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.15-8-a-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js", + + description: "Array.prototype.lastIndexOf - decreasing length of array causes index property not to be visited", + + test: function testcase() { + + var arr = [0, 1, 2, "last", 4]; + + Object.defineProperty(arr, "4", { + get: function () { + arr.length = 3; + return 0; + }, + configurable: true + }); + + return -1 === arr.lastIndexOf("last"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js new file mode 100644 index 0000000000..595a3928c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.15-8-a-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js", + + description: "Array.prototype.lastIndexOf - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + + var arr = [0, 1, 2, 3, 4]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "3", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + return 2 === arr.lastIndexOf("prototype"); + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js new file mode 100644 index 0000000000..607bbae1c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.15-8-a-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js", + + description: "Array.prototype.lastIndexOf - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "3", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + return 2 === arr.lastIndexOf("unconfigurable"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js new file mode 100644 index 0000000000..347c620898 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.15-8-a-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js", + + description: "Array.prototype.lastIndexOf - added properties in step 5 are visible here on an Array-like object", + + test: function testcase() { + + var arr = { length: 30 }; + var targetObj = function () { }; + + var fromIndex = { + valueOf: function () { + arr[4] = targetObj; + return 10; + } + }; + + return 4 === Array.prototype.lastIndexOf.call(arr, targetObj, fromIndex); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js new file mode 100644 index 0000000000..1558884711 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.15-8-a-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js", + + description: "Array.prototype.lastIndexOf - added properties in step 5 are visible here on an Array", + + test: function testcase() { + + var arr = []; + arr.length = 30; + var targetObj = function () { }; + + var fromIndex = { + valueOf: function () { + arr[4] = targetObj; + return 11; + } + }; + + return 4 === arr.lastIndexOf(targetObj, fromIndex); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js new file mode 100644 index 0000000000..e14a5347da --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.15-8-a-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js", + + description: "Array.prototype.lastIndexOf - deleted properties in step 2 are visible here", + + test: function testcase() { + + var arr = { 2: 6.99 }; + + Object.defineProperty(arr, "length", { + get: function () { + delete arr[2]; + return 3; + }, + configurable: true + }); + + return -1 === Array.prototype.lastIndexOf.call(arr, 6.99); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js new file mode 100644 index 0000000000..03da35ddaa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.15-8-a-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js", + + description: "Array.prototype.lastIndexOf - deleted properties of step 5 are visible here on an Array-like object", + + test: function testcase() { + + var arr = { 10: false, length: 30 }; + + var fromIndex = { + valueOf: function () { + delete arr[10]; + return 15; + } + }; + + return -1 === Array.prototype.lastIndexOf.call(arr, false, fromIndex); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js new file mode 100644 index 0000000000..820f7244d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.15-8-a-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js", + + description: "Array.prototype.lastIndexOf - deleted properties of step 5 are visible here on an Array", + + test: function testcase() { + + var arr = []; + arr[10] = "10"; + arr.length = 20; + + var fromIndex = { + valueOf: function () { + delete arr[10]; + return 11; + } + }; + + return -1 === arr.lastIndexOf("10", fromIndex); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js new file mode 100644 index 0000000000..c52232ae25 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-8-a-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js", + + description: "Array.prototype.lastIndexOf - properties added into own object after current position are visited on an Array-like object", + + test: function testcase() { + + var arr = { length: 8 }; + + Object.defineProperty(arr, "4", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + return Array.prototype.lastIndexOf.call(arr, 1) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js new file mode 100644 index 0000000000..d6b682ae1a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-8-a-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js", + + description: "Array.prototype.lastIndexOf - properties added into own object after current position are visited on an Array", + + test: function testcase() { + + var arr = [0, , 2]; + + Object.defineProperty(arr, "2", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + return arr.lastIndexOf(1) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js new file mode 100644 index 0000000000..70e32650e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.15-8-a-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js", + + description: "Array.prototype.lastIndexOf - properties can be added to prototype after current position are visited on an Array-like object", + + test: function testcase() { + + var arr = { length: 9 }; + + Object.defineProperty(arr, "4", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return Infinity; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + return Array.prototype.lastIndexOf.call(arr, Infinity) === 1; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js new file mode 100644 index 0000000000..6ac675af65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-8-b-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js", + + description: "Array.prototype.lastIndexOf - undefined property wouldn't be called", + + test: function testcase() { + + return [0, , 2].lastIndexOf(undefined) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.js new file mode 100644 index 0000000000..8ae8454807 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.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: "15.4.4.15-8-b-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var obj = { 0: 0, 1: 1, 2: 2, length: 3 }; + + return Array.prototype.lastIndexOf.call(obj, 0) === 0 && + Array.prototype.lastIndexOf.call(obj, 1) === 1 && + Array.prototype.lastIndexOf.call(obj, 2) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js new file mode 100644 index 0000000000..d0367c92a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.15-8-b-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var obj = { length: 3 }; + Object.defineProperty(obj, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + Object.defineProperty(obj, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + return 0 === Array.prototype.lastIndexOf.call(obj, 0) && + 1 === Array.prototype.lastIndexOf.call(obj, 1) && + 2 === Array.prototype.lastIndexOf.call(obj, 2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js new file mode 100644 index 0000000000..436fe8e8c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.15-8-b-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + + var arr = []; + try { + Array.prototype[0] = false; + Object.defineProperty(arr, "0", { + get: function () { + return true; + }, + configurable: true + }); + + return 0 === arr.lastIndexOf(true); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js new file mode 100644 index 0000000000..d5ae8a7174 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.15-8-b-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + var obj = { length: 1 }; + + try { + Object.prototype[0] = false; + Object.defineProperty(obj, "0", { + get: function () { + return true; + }, + configurable: true + }); + + return 0 === Array.prototype.lastIndexOf.call(obj, true); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js new file mode 100644 index 0000000000..bf97494abb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.15-8-b-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var arr = []; + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return false; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + return true; + }, + configurable: true + }); + + return 0 === arr.lastIndexOf(true); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js new file mode 100644 index 0000000000..61c4eb48e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.15-8-b-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var obj = { length: 1 }; + + try { + Object.defineProperty(Object.prototype, "0", { + get: function () { + return false; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + return true; + }, + configurable: true + }); + + return 0 === Array.prototype.lastIndexOf.call(obj, true); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js new file mode 100644 index 0000000000..15ce75b5aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.15-8-b-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 10; + }, + configurable: true + }); + + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 20; + }, + configurable: true + }); + + Object.defineProperty(Array.prototype, "2", { + get: function () { + return 30; + }, + configurable: true + }); + + return 0 === [, , , ].lastIndexOf(10) && + 1 === [, , , ].lastIndexOf(20) && + 2 === [, , , ].lastIndexOf(30); + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js new file mode 100644 index 0000000000..492d25e3c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.15-8-b-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + try { + Object.defineProperty(Object.prototype, "0", { + get: function () { + return 10; + }, + configurable: true + }); + + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 20; + }, + configurable: true + }); + + Object.defineProperty(Object.prototype, "2", { + get: function () { + return 30; + }, + configurable: true + }); + + return 0 === Array.prototype.lastIndexOf.call({ length: 3 }, 10) && + 1 === Array.prototype.lastIndexOf.call({ length: 3 }, 20) && + 2 === Array.prototype.lastIndexOf.call({ length: 3 }, 30); + } finally { + delete Object.prototype[0]; + delete Object.prototype[1]; + delete Object.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js new file mode 100644 index 0000000000..81297a5ab6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.15-8-b-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + var arr = []; + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + return arr.lastIndexOf(undefined) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js new file mode 100644 index 0000000000..36434e72ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.15-8-b-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var obj = { length: 1 }; + Object.defineProperty(obj, "0", { + set: function () { }, + configurable: true + }); + + return 0 === Array.prototype.lastIndexOf.call(obj, undefined); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.js new file mode 100644 index 0000000000..53d24f0cc8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.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: "15.4.4.15-8-b-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var obj = { length: 1 }; + try { + Object.defineProperty(Object.prototype, "0", { + get: function () { + return 20; + }, + configurable: true + }); + Object.defineProperty(obj, "0", { + set: function () { }, + configurable: true + }); + + return obj.hasOwnProperty(0) && 0 === Array.prototype.lastIndexOf.call(obj, undefined); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js new file mode 100644 index 0000000000..e47fb75d08 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.15-8-b-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own data property on an Array", + + test: function testcase() { + return [true, true, true].lastIndexOf(true) === 2 && + [true, true, false].lastIndexOf(true) === 1 && + [true, false, false].lastIndexOf(true) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.js new file mode 100644 index 0000000000..024558b9ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.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: "15.4.4.15-8-b-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is an own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var arr = [, 1]; + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 100; + }, + configurable: true + }); + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + return arr.hasOwnProperty(0) && arr.lastIndexOf(undefined) === 0; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js new file mode 100644 index 0000000000..695b4aa1bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.15-8-b-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + set: function () { }, + configurable: true + }); + return [, ].lastIndexOf(undefined) === 0; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js new file mode 100644 index 0000000000..82e16b5591 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.15-8-b-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + try { + Object.defineProperty(Object.prototype, "0", { + set: function () { }, + configurable: true + }); + return 0 === Array.prototype.lastIndexOf.call({ length: 1 }, undefined); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js new file mode 100644 index 0000000000..8687f20c64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.15-8-b-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js", + + description: "Array.prototype.lastIndexOf - This object is the global object", + + test: function testcase() { + + var targetObj = {}; + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = targetObj; + fnGlobalObject()[100] = "100"; + fnGlobalObject()[200] = "200"; + fnGlobalObject().length = 200; + return 0 === Array.prototype.lastIndexOf.call(fnGlobalObject(), targetObj) && + 100 === Array.prototype.lastIndexOf.call(fnGlobalObject(), "100") && + -1 === Array.prototype.lastIndexOf.call(fnGlobalObject(), "200"); + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[100]; + delete fnGlobalObject()[200]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js new file mode 100644 index 0000000000..e86e0b43b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.15-8-b-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js", + + description: "Array.prototype.lastIndexOf applied to Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + var func = function (a, b) { + return 0 === Array.prototype.lastIndexOf.call(arguments, arguments[0]) && + -1 === Array.prototype.lastIndexOf.call(arguments, arguments[1]); + }; + + return func(true); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js new file mode 100644 index 0000000000..e17439e001 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.15-8-b-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js", + + description: "Array.prototype.lastIndexOf applied to Arguments object which implements its own property get method (number of arguments equals to number of parameters)", + + test: function testcase() { + + var func = function (a, b) { + return 0 === Array.prototype.lastIndexOf.call(arguments, arguments[0]) && + 1 === Array.prototype.lastIndexOf.call(arguments, arguments[1]) && + -1 === Array.prototype.lastIndexOf.call(arguments, arguments[2]); + }; + + return func(0, true); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js new file mode 100644 index 0000000000..10dade6261 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.15-8-b-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js", + + description: "Array.prototype.lastIndexOf applied to Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var func = function (a, b) { + return 2 === Array.prototype.lastIndexOf.call(arguments, arguments[0]) && + 3 === Array.prototype.lastIndexOf.call(arguments, arguments[3]) && + -1 === Array.prototype.lastIndexOf.call(arguments, arguments[4]); + }; + + return func(0, arguments, 0, Object.prototype); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js new file mode 100644 index 0000000000..97392c727a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.15-8-b-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js", + + description: "Array.prototype.lastIndexOf - side-effects are visible in subsequent iterations on an Array", + + test: function testcase() { + + var preIterVisible = false; + var arr = []; + + Object.defineProperty(arr, "2", { + get: function () { + preIterVisible = true; + return false; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return true; + } else { + return false; + } + }, + configurable: true + }); + + return arr.lastIndexOf(true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js new file mode 100644 index 0000000000..477f142c99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.15-8-b-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js", + + description: "Array.prototype.lastIndexOf - side-effects are visible in subsequent iterations on an Array-like object", + + test: function testcase() { + + var preIterVisible = false; + var obj = { length: 3 }; + + Object.defineProperty(obj, "2", { + get: function () { + preIterVisible = true; + return false; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return true; + } else { + return false; + } + }, + configurable: true + }); + + return Array.prototype.lastIndexOf.call(obj, true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.js new file mode 100644 index 0000000000..629e62486f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.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: "15.4.4.15-8-b-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + try { + Array.prototype[0] = Object; + return [Object.prototype].lastIndexOf(Object.prototype) === 0; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js new file mode 100644 index 0000000000..fe1823599c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.15-8-b-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js", + + description: "Array.prototype.lastIndexOf terminates iteration on unhandled exception on an Array", + + test: function testcase() { + + var accessed = false; + var arr = []; + + Object.defineProperty(arr, "2", { + get: function () { + throw new TypeError(); + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + accessed = true; + return true; + }, + configurable: true + }); + + try { + arr.lastIndexOf(true); + return false; + } catch (e) { + return (e instanceof TypeError) && !accessed; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js new file mode 100644 index 0000000000..7f3225882d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.15-8-b-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js", + + description: "Array.prototype.lastIndexOf terminates iteration on unhandled exception on an Array-like object", + + test: function testcase() { + + var accessed = false; + var obj = { length: 3 }; + + Object.defineProperty(obj, "2", { + get: function () { + throw new TypeError(); + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + accessed = true; + return true; + }, + configurable: true + }); + + try { + Array.prototype.lastIndexOf.call(obj, true); + return false; + } catch (e) { + return (e instanceof TypeError) && !accessed; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js new file mode 100644 index 0000000000..1275b149b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.15-8-b-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + try { + Object.prototype[0] = false; + return 0 === Array.prototype.lastIndexOf.call({ 0: true, 1: 1, length: 2 }, true); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js new file mode 100644 index 0000000000..285fe8fb82 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.15-8-b-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return false; + }, + configurable: true + }); + return 0 === [Number].lastIndexOf(Number); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js new file mode 100644 index 0000000000..ff4b805b77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.15-8-b-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + try { + Object.defineProperty(Object.prototype, "0", { + get: function () { + return false; + }, + configurable: true + }); + return 0 === Array.prototype.lastIndexOf.call({ 0: true, 1: 1, length: 2 }, true); + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js new file mode 100644 index 0000000000..6d203deefc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.15-8-b-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + try { + Array.prototype[0] = true; + Array.prototype[1] = false; + Array.prototype[2] = "true"; + return 0 === [, , , ].lastIndexOf(true) && + 1 === [, , , ].lastIndexOf(false) && + 2 === [, , , ].lastIndexOf("true"); + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js new file mode 100644 index 0000000000..c11adf6cbd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.15-8-b-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + try { + Object.prototype[0] = true; + Object.prototype[1] = false; + Object.prototype[2] = "true"; + return 0 === Array.prototype.lastIndexOf.call({ length: 3 }, true) && + 1 === Array.prototype.lastIndexOf.call({ length: 3 }, false) && + 2 === Array.prototype.lastIndexOf.call({ length: 3 }, "true"); + } finally { + delete Object.prototype[0]; + delete Object.prototype[1]; + delete Object.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js new file mode 100644 index 0000000000..0337113dec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.15-8-b-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js", + + description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + var arr = [, , , ]; + Object.defineProperty(arr, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + Object.defineProperty(arr, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + return arr.lastIndexOf(0) === 0 && arr.lastIndexOf(1) === 1 && arr.lastIndexOf(2) === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js new file mode 100644 index 0000000000..95d5010020 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.15-8-b-ii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js", + + description: "Array.prototype.lastIndexOf - type of array element is different from type of search element", + + test: function testcase() { + + return ["true"].lastIndexOf(true) === -1 && + ["0"].lastIndexOf(0) === -1 && + [false].lastIndexOf(0) === -1 && + [undefined].lastIndexOf(0) === -1 && + [null].lastIndexOf(0) === -1 && + [[]].lastIndexOf(0) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js new file mode 100644 index 0000000000..ee218781b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.15-8-b-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js", + + description: "Array.prototype.lastIndexOf - both array element and search element are booleans, and they have same value", + test: function testcase() { + + return [false, true].lastIndexOf(true) === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.js new file mode 100644 index 0000000000..1b43a8dbb4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.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: "15.4.4.15-8-b-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.js", + + description: "Array.prototype.lastIndexOf - both array element and search element are Objects, and they refer to the same object", + test: function testcase() { + + var obj1 = {}; + var obj2 = {}; + var obj3 = obj2; + return [obj2, obj1].lastIndexOf(obj3) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js new file mode 100644 index 0000000000..0aba7ea0b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-8-b-ii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js", + + description: "Array.prototype.lastIndexOf - both type of array element and type of search element are Undefined", + + test: function testcase() { + + return [undefined].lastIndexOf() === 0 && [undefined].lastIndexOf(undefined) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js new file mode 100644 index 0000000000..44550d2f4e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-8-b-ii-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js", + + description: "Array.prototype.lastIndexOf - both type of array element and type of search element are Null", + + test: function testcase() { + + return [null].lastIndexOf(null) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js new file mode 100644 index 0000000000..68798bd79d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.15-8-b-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js", + + description: "Array.prototype.lastIndexOf - search element is NaN", + test: function testcase() { + + return [+NaN, NaN, -NaN].lastIndexOf(NaN) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js new file mode 100644 index 0000000000..ccf3acb2a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js @@ -0,0 +1,37 @@ +/// 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: "15.4.4.15-8-b-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js", + + description: "Array.prototype.lastIndexOf - search element is -NaN", + test: function testcase() { + return [+NaN, NaN, -NaN].lastIndexOf(-NaN) === -1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js new file mode 100644 index 0000000000..455877de66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.15-8-b-ii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js", + + description: "Array.prototype.lastIndexOf - array element is +0 and search element is -0", + test: function testcase() { + + return [+0].lastIndexOf(-0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js new file mode 100644 index 0000000000..66d2273eb2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.15-8-b-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js", + + description: "Array.prototype.lastIndexOf - array element is -0 and search element is +0", + test: function testcase() { + + return [-0].lastIndexOf(+0) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js new file mode 100644 index 0000000000..0d4ec0f96f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.15-8-b-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js", + + description: "Array.prototype.lastIndexOf - both array element and search element are numbers, and they have same value", + test: function testcase() { + + return [-1, 0, 1].lastIndexOf(-1) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js new file mode 100644 index 0000000000..e44c8a160d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js @@ -0,0 +1,38 @@ +/// 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: "15.4.4.15-8-b-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js", + + description: "Array.prototype.lastIndexOf - both array element and search element are strings, and they have exactly the same sequence of characters", + test: function testcase() { + + return ["abc", "ab", "bca", ""].lastIndexOf("abc") === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js new file mode 100644 index 0000000000..73d541d616 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.15-8-b-iii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js", + + description: "Array.prototype.lastIndexOf returns index of last one when more than two elements in array are eligible", + + test: function testcase() { + + return [2, 1, 2, 2, 1].lastIndexOf(2) === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js new file mode 100644 index 0000000000..4741854f95 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.15-8-b-iii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js", + + description: "Array.prototype.lastIndexOf returns without visiting subsequent element once search value is found", + + test: function testcase() { + var arr = [2, 1, , 1, 2]; + var elementFirstAccessed = false; + var elementThirdAccessed = false; + + Object.defineProperty(arr, "2", { + get: function () { + elementThirdAccessed = true; + return 2; + }, + configurable: true + }); + Object.defineProperty(arr, "0", { + get: function () { + elementFirstAccessed = true; + return 2; + }, + configurable: true + }); + + arr.lastIndexOf(2); + return !elementThirdAccessed && !elementFirstAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js new file mode 100644 index 0000000000..57f122fc32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.15-9-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js", + +description: "Array.prototype.lastIndexOf returns -1 for elements not present", + +test: function testcase() { + var a = new Array(); + a[100] = 1; + a[99999] = ""; + a[10] = new Object(); + a[5555] = 5.5; + a[123456] = "str"; + a[5] = 1E+309; + if (a.lastIndexOf(1) !== 100 || + a.lastIndexOf("") !== 99999 || + a.lastIndexOf("str") !== 123456 || + a.lastIndexOf(5.5) !== 5555 || + a.lastIndexOf(1E+309) !== 5 ) + { + return false; + } + if (a.lastIndexOf(true) === -1 && + a.lastIndexOf(5) === -1 && + a.lastIndexOf("str1") === -1 && + a.lastIndexOf(null) === -1 && + a.lastIndexOf(new Object()) === -1 ) + { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.lastIndexOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js new file mode 100644 index 0000000000..fe86b21e1b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.15-9-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js", + +description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 and does not access any other properties", + +test: function testcase() { + var accessed = false; + var f = {length: 0}; + Object.defineProperty(f,"0",{get: function () {accessed = true; return 1;}}); + + var i = Array.prototype.lastIndexOf.call(f,1); + + if (i === -1 && accessed==false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js new file mode 100644 index 0000000000..2101a8c84d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.4.4.16-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js", + +description: "Array.prototype.every must exist as a function", + +test: function testcase() { + var f = Array.prototype.every; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js new file mode 100644 index 0000000000..e2910c1a87 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.16-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js", + +description: "Array.prototype.every.length must be 1", + +test: function testcase() { + if (Array.prototype.every.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js new file mode 100644 index 0000000000..b8fb6c4ba2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.16-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js", + + description: "Array.prototype.every applied to undefined throws a TypeError", + + test: function testcase() { + try { + Array.prototype.every.call(undefined); // TypeError is thrown if value is undefined + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js new file mode 100644 index 0000000000..576ae3d601 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js", + + description: "Array.prototype.every applied to the Math object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return ('[object Math]' !== Object.prototype.toString.call(obj)); + } + + try { + Math.length = 1; + Math[0] = 1; + return !Array.prototype.every.call(Math, callbackfn); + } finally { + delete Math[0]; + delete Math.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js new file mode 100644 index 0000000000..c3597b00b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js", + + description: "Array.prototype.every applied to Date object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return !(obj instanceof Date); + } + + var obj = new Date(); + obj.length = 1; + obj[0] = 1; + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js new file mode 100644 index 0000000000..aa64664e6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js", + + description: "Array.prototype.every applied to RegExp object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return !(obj instanceof RegExp); + } + + var obj = new RegExp(); + obj.length = 1; + obj[0] = 1; + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js new file mode 100644 index 0000000000..2d0759930e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js", + + description: "Array.prototype.every applied to the JSON object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return ('[object JSON]' !== Object.prototype.toString.call(obj)); + } + + try { + JSON.length = 1; + JSON[0] = 1; + return !Array.prototype.every.call(JSON, callbackfn); + } finally { + delete JSON.length; + delete JSON[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js new file mode 100644 index 0000000000..05951a1a4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js", + + description: "Array.prototype.every applied to Error object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return !(obj instanceof Error); + } + + var obj = new Error(); + obj.length = 1; + obj[0] = 1; + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js new file mode 100644 index 0000000000..05a39edb99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js", + + description: "Array.prototype.every applied to the Arguments object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return ('[object Arguments]' !== Object.prototype.toString.call(obj)); + } + + var obj = (function fun() { + return arguments; + }("a", "b")); + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js new file mode 100644 index 0000000000..9a66d6dd78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.16-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js", + + description: "Array.prototype.every applied to null throws a TypeError", + + test: function testcase() { + try { + Array.prototype.every.call(null); // TypeError is thrown if value is null + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js new file mode 100644 index 0000000000..1aa9ed6d12 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.16-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js", + + description: "Array.prototype.every applied to boolean primitive", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return obj instanceof Boolean; + } + + try { + Boolean.prototype[0] = 1; + Boolean.prototype.length = 1; + return Array.prototype.every.call(false, callbackfn) && accessed; + } finally { + delete Boolean.prototype[0]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js new file mode 100644 index 0000000000..d44b322b2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js", + + description: "Array.prototype.every applied to Boolean object", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return obj instanceof Boolean; + } + + var obj = new Boolean(true); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + return Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js new file mode 100644 index 0000000000..5de5d63bff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.16-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js", + + description: "Array.prototype.every applied to number primitive", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return obj instanceof Number; + } + + try { + Number.prototype[0] = 1; + Number.prototype.length = 1; + return Array.prototype.every.call(2.5, callbackfn) && accessed; + } finally { + delete Number.prototype[0]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js new file mode 100644 index 0000000000..ebe1fe1f64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js", + + description: "Array.prototype.every applied to Number object", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return obj instanceof Number; + } + + var obj = new Number(-128); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + return Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.js new file mode 100644 index 0000000000..30c318f154 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.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: "15.4.4.16-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.js", + + description: "Array.prototype.every applied to string primitive", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return !(obj instanceof String); + } + + return !Array.prototype.every.call("hello\nworld\\!", callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js new file mode 100644 index 0000000000..1db6d18615 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.16-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js", + + description: "Array.prototype.every applied to String object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return !(obj instanceof String); + } + + var obj = new String("hello\nworld\\!"); + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js new file mode 100644 index 0000000000..41c43f66a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js", + + description: "Array.prototype.every applied to Function object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return !(obj instanceof Function); + } + + var obj = function (a, b) { + return a + b; + }; + obj[0] = 11; + obj[1] = 9; + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-1.js new file mode 100644 index 0000000000..f5a2a4684a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-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: "15.4.4.16-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-1.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an own data property", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: 2 + }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js new file mode 100644 index 0000000000..d6d5df6eb4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.16-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an inherited accessor property", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = { }; + + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.every.call(child, callbackfn1) && + !Array.prototype.every.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js new file mode 100644 index 0000000000..761227402a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.16-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an own accessor property without a get function", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { + 0: 9, + 1: 8 + }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js new file mode 100644 index 0000000000..c340d7eb38 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.16-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js", + + description: "Array.prototype.every - 'length' is own accessor property without a get function that overrides an inherited accessor property", + + test: function testcase() { + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var obj = { 0: 9, 1: 8 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + } finally { + delete Object.prototype.length; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js new file mode 100644 index 0000000000..b29167f344 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.16-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js", + + description: "Array.prototype.every applied to the Array-like object that 'length' is inherited accessor property without a get function", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 9; + child[1] = 8; + + return Array.prototype.every.call(child, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js new file mode 100644 index 0000000000..f92b6acbba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js", + + description: "Array.prototype.every applied to the Array-like object that 'length' property doesn't exist", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, 1: 12 }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js new file mode 100644 index 0000000000..d3c43d25ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.16-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js", + + description: "Array.prototype.every - 'length' is property of the global object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 12; + fnGlobalObject()[1] = 11; + fnGlobalObject()[2] = 9; + fnGlobalObject().length = 2; + return Array.prototype.every.call(fnGlobalObject(), callbackfn1) && + !Array.prototype.every.call(fnGlobalObject(), callbackfn2); + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js new file mode 100644 index 0000000000..891222900f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js", + + description: "Array.prototype.every applied to the Arguments object, which implements its own property get method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var func = function (a, b) { + arguments[2] = 9; + return Array.prototype.every.call(arguments, callbackfn1) && + !Array.prototype.every.call(arguments, callbackfn2); + }; + + return func(12, 11); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js new file mode 100644 index 0000000000..2c178201f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.16-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js", + + description: "Array.prototype.every applied to String object, which implements its own property get method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return parseInt(val, 10) > 1; + } + + function callbackfn2(val, idx, obj) { + return parseInt(val, 10) > 2; + } + + var str = new String("432"); + try { + String.prototype[3] = "1"; + return Array.prototype.every.call(str, callbackfn1) && + !Array.prototype.every.call(str, callbackfn2); + } finally { + delete String.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.js new file mode 100644 index 0000000000..902cce59f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.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: "15.4.4.16-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.js", + + description: "Array.prototype.every applied to Function object, which implements its own property get method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var fun = function (a, b) { + return a + b; + }; + fun[0] = 12; + fun[1] = 11; + fun[2] = 9; + + return Array.prototype.every.call(fun, callbackfn1) && + !Array.prototype.every.call(fun, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js new file mode 100644 index 0000000000..d2b9c5c371 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.16-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js", + + description: "Array.prototype.every - 'length' is own data property on an Array", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + try { + Array.prototype[2] = 9; + + return [12, 11].every(callbackfn1) && + ![12, 11].every(callbackfn2); + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js new file mode 100644 index 0000000000..5f9b465f8b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.16-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an own data property that overrides an inherited data property", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.every.call(child, callbackfn1) && + !Array.prototype.every.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js new file mode 100644 index 0000000000..29b06b3b39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.16-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js", + + description: "Array.prototype.every - 'length' is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + var arrProtoLen = 0; + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + Array.prototype[2] = 9; + + return [12, 11].every(callbackfn1) && + ![12, 11].every(callbackfn2); + } finally { + Array.prototype.length = arrProtoLen; + delete Array.prototype[2]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js new file mode 100644 index 0000000000..fa0579839d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.16-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = { }; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + + return Array.prototype.every.call(child, callbackfn1) && + !Array.prototype.every.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js new file mode 100644 index 0000000000..a72878d8e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.16-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an inherited data property", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = { length: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.every.call(child, callbackfn1) && + !Array.prototype.every.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js new file mode 100644 index 0000000000..16cea7b067 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.16-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an own accessor property", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { }; + + Object.defineProperty(obj, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + obj[0] = 12; + obj[1] = 11; + obj[2] = 9; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js new file mode 100644 index 0000000000..574d29b501 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.16-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.every.call(child, callbackfn1) && + !Array.prototype.every.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.js new file mode 100644 index 0000000000..566dd08975 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.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: "15.4.4.16-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.js", + + description: "Array.prototype.every applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.every.call(child, callbackfn1) && + !Array.prototype.every.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js new file mode 100644 index 0000000000..edfa51f760 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js", + + description: "Array.prototype.every - value of 'length' is undefined", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 9, length: undefined }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js new file mode 100644 index 0000000000..7d3fe65cd0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js", + + description: "Array.prototype.every - value of 'length' is a number (value is NaN)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 9, length: NaN }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js new file mode 100644 index 0000000000..104f2eae6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js", + + description: "Array.prototype.every - 'length' is a string containing a positive number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "2" }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js new file mode 100644 index 0000000000..2ad032b9e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js", + + description: "Array.prototype.every - 'length' is a string containing a negative number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 11, 1: 12, 2: 9, length: "-4294967294" }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js new file mode 100644 index 0000000000..993e7752cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js", + + description: "Array.prototype.every - 'length' is a string containing a decimal number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "2.5" }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js new file mode 100644 index 0000000000..739bc07c60 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js", + + description: "Array.prototype.every - 'length' is a string containing +/-Infinity", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var objOne = { 0: 9, length: "Infinity" }; + var objTwo = { 0: 9, length: "+Infinity" }; + var objThree = { 0: 9, length: "-Infinity" }; + + return Array.prototype.every.call(objOne, callbackfn) && + Array.prototype.every.call(objTwo, callbackfn) && + Array.prototype.every.call(objThree, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js new file mode 100644 index 0000000000..65610385bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js", + + description: "Array.prototype.every - 'length' is a string containing an exponential number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "2E0" }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js new file mode 100644 index 0000000000..ad048c5626 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js", + + description: "Array.prototype.every - 'length' is a string containing a hex number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "0x0002" }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js new file mode 100644 index 0000000000..67488cbd58 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js", + + description: "Array.prototype.every - 'length' is a string containing a number with leading zeros", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "0002.00" }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js new file mode 100644 index 0000000000..ff41a15bff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js", + + description: "Array.prototype.every - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 9, 1: 8, length: "two" }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js new file mode 100644 index 0000000000..74836edca6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.16-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js", + + description: "Array.prototype.every - value of 'length' is an Object which has an own toString method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var toStringAccessed = false; + var obj = { + 0: 12, + 1: 11, + 2: 9, + + length: { + toString: function () { + toStringAccessed = true; + return '2'; + } + } + }; + + // objects inherit the default valueOf() method from Object + // that simply returns itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2) && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js new file mode 100644 index 0000000000..6a6a33634c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.16-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js", + + description: "Array.prototype.every on an Array-like object if 'length' is 1 (length overridden to true(type conversion))", + + test: function testcase() { + + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 11, 1: 9, length: true }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js new file mode 100644 index 0000000000..3d08232584 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.16-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js", + + description: "Array.prototype.every - value of 'length' is an Object which has an own valueOf method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var valueOfAccessed = false; + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + } + }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2) && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js new file mode 100644 index 0000000000..c9bb310b49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.16-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js", + + description: "Array.prototype.every - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var toStringAccessed = false; + var valueOfAccessed = false; + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: { + valueOf: function () { + valueOfAccessed = true; + return {}; + }, + toString: function () { + toStringAccessed = true; + return '2'; + } + } + }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2) && + valueOfAccessed && + toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js new file mode 100644 index 0000000000..047c7bb8a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.16-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js", + + description: "Array.prototype.every throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var callbackfnAccessed = false; + var toStringAccessed = false; + var valueOfAccessed = false; + + function callbackfn(val, idx, obj) { + callbackfnAccessed = true; + return val > 10; + } + + var obj = { + 0: 11, + 1: 12, + + length: { + valueOf: function () { + valueOfAccessed = true; + return {}; + }, + toString: function () { + toStringAccessed = true; + return {}; + } + } + }; + + try { + Array.prototype.every.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof TypeError) && toStringAccessed && valueOfAccessed && !callbackfnAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js new file mode 100644 index 0000000000..ce35412e80 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js @@ -0,0 +1,77 @@ +/// 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: "15.4.4.16-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js", + + description: "Array.prototype.every uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var valueOfAccessed = false; + var toStringAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + child.toString = function () { + toStringAccessed = true; + return '1'; + }; + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: child + }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2) && + valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js new file mode 100644 index 0000000000..401d7ce184 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js", + + description: "Array.prototype.every - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: 2.685 }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js new file mode 100644 index 0000000000..ccea8fd2dc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.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: "15.4.4.16-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js", + + description: "Array.prototype.every - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: -4294967294.5 + }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js new file mode 100644 index 0000000000..1b2f6d0e19 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.16-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js", + + description: "Array.prototype.every - value of 'length' is boundary value (2^32)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { + 0: 12, + length: 4294967296 + }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js new file mode 100644 index 0000000000..df75fc959a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.16-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js", + + description: "Array.prototype.every - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { + 0: 11, + 1: 9, + length: 4294967297 + }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js new file mode 100644 index 0000000000..d1a9575870 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js", + + description: "Array.prototype.every - value of 'length' is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 9, length: 0 }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js new file mode 100644 index 0000000000..81dae595e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js", + + description: "Array.prototype.every - value of 'length' is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 9, length: +0 }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js new file mode 100644 index 0000000000..308dcec79e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js", + + description: "Array.prototype.every - value of 'length' is a number (value is -0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 9, length: -0 }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js new file mode 100644 index 0000000000..d989fe529e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js", + + description: "Array.prototype.every - value of 'length' is a number (value is positive)", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: 2 }; + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js new file mode 100644 index 0000000000..7300d90a12 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js", + + description: "Array.prototype.every - value of 'length' is a number (value is negative)", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: -4294967294 }; //length used to exec while loop is 2 + + return Array.prototype.every.call(obj, callbackfn1) && + !Array.prototype.every.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js new file mode 100644 index 0000000000..db49723235 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js", + + description: "Array.prototype.every - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 9, length: Infinity }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js new file mode 100644 index 0000000000..410cb2effb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js", + + description: "Array.prototype.every - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 9, length: -Infinity }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js new file mode 100644 index 0000000000..916ac5b0ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.16-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js", + +description: "Array.prototype.every throws TypeError if callbackfn is undefined", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.every(); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js new file mode 100644 index 0000000000..a73b1475f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.16-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js", + + description: "Array.prototype.every - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.every.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js new file mode 100644 index 0000000000..0ad9724e63 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.16-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js", + + description: "Array.prototype.every - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.every.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js new file mode 100644 index 0000000000..a24ce95965 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.16-4-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js", + + description: "Array.prototype.every - 'callbackfn' is a function", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + return ![11, 9].every(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js new file mode 100644 index 0000000000..0158021b45 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.16-4-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js", + + description: "Array.prototype.every - calling with no callbackfn is the same as passing undefined for callbackfn", + + test: function testcase() { + var obj = { 10: 10 }; + var lengthAccessed = false; + var loopAccessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + lengthAccessed = true; + return 20; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + loopAccessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.every.call(obj); + return false; + } catch (ex) { + return (ex instanceof TypeError) && lengthAccessed && !loopAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js new file mode 100644 index 0000000000..7023072f77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.16-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js", + +description: "Array.prototype.every throws TypeError if callbackfn is null", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.every(null); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js new file mode 100644 index 0000000000..a02dc64c6d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.16-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js", + +description: "Array.prototype.every throws TypeError if callbackfn is boolean", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.every(true); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js new file mode 100644 index 0000000000..2cfd63f3c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.16-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js", + +description: "Array.prototype.every throws TypeError if callbackfn is number", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.every(5); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js new file mode 100644 index 0000000000..745c70312f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.16-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js", + +description: "Array.prototype.every throws TypeError if callbackfn is string", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.every("abc"); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js new file mode 100644 index 0000000000..a810501354 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.16-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js", + +description: "Array.prototype.every throws TypeError if callbackfn is Object without a Call internal method", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.every( {} ); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js new file mode 100644 index 0000000000..5cc44ee396 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-4-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js", + + description: "Array.prototype.every - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.every.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js new file mode 100644 index 0000000000..36744b2180 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.16-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js", + + description: "Array.prototype.every - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.every.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js new file mode 100644 index 0000000000..dfb1052ba5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.16-5-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js", + +description: "Array.prototype.every - thisArg not passed", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + return this === fnGlobalObject(); + } + + var arr = [1]; + if(arr.every(callbackfn) === true) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js new file mode 100644 index 0000000000..3e677296d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js", + + description: "Array.prototype.every - Array Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objArray = []; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objArray; + } + + + + return [11].every(callbackfn, objArray) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js new file mode 100644 index 0000000000..742f5edac3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js", + + description: "Array.prototype.every - String Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objString = new String(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objString; + } + + + + return [11].every(callbackfn, objString) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js new file mode 100644 index 0000000000..e8fe0b777e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js", + + description: "Array.prototype.every - Boolean Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objBoolean = new Boolean(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objBoolean; + } + + + + return [11].every(callbackfn, objBoolean) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js new file mode 100644 index 0000000000..a13d31fd02 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js", + + description: "Array.prototype.every - Number Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objNumber = new Number(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objNumber; + } + + return [11].every(callbackfn, objNumber) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js new file mode 100644 index 0000000000..fab8181601 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-5-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js", + + description: "Array.prototype.every - the Math object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === Math; + } + + return [11].every(callbackfn, Math) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js new file mode 100644 index 0000000000..c51e3f56fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-5-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js", + + description: "Array.prototype.every - Date Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objDate = new Date(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objDate; + } + + return [11].every(callbackfn, objDate) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js new file mode 100644 index 0000000000..a9f660a0e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-5-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js", + + description: "Array.prototype.every - RegExp Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objRegExp = new RegExp(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objRegExp; + } + + return [11].every(callbackfn, objRegExp) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js new file mode 100644 index 0000000000..470e74016b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.16-5-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js", + + description: "Array.prototype.every - the JSON object can be used as thisArg", + + test: function testcase() { + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === JSON; + } + + return [11].every(callbackfn, JSON) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js new file mode 100644 index 0000000000..80b7e48520 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-5-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js", + + description: "Array.prototype.every - Error Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objError = new RangeError(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objError; + } + + return [11].every(callbackfn, objError) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js new file mode 100644 index 0000000000..5eb9f09c70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.16-5-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js", + + description: "Array.prototype.every - the Arguments object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var arg; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === arg; + } + + (function fun() { + arg = arguments; + }(1, 2, 3)); + + return [11].every(callbackfn, arg) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js new file mode 100644 index 0000000000..3e65fd92db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js", + +description: "Array.prototype.every - thisArg is Object", + +test: function testcase() { + var res = false; + var o = new Object(); + o.res = true; + function callbackfn(val, idx, obj) + { + return this.res; + } + + var arr = [1]; + if(arr.every(callbackfn, o) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js new file mode 100644 index 0000000000..7c5bc35690 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-5-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js", + + description: "Array.prototype.every - the global object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === fnGlobalObject(); + } + + return [11].every(callbackfn, fnGlobalObject()) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js new file mode 100644 index 0000000000..64f13807c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-5-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js", + + description: "Array.prototype.every - boolean primitive can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this.valueOf() === false; + } + + return [11].every(callbackfn, false) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js new file mode 100644 index 0000000000..ce2d0b1af7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-5-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js", + + description: "Array.prototype.every - number primitive can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this.valueOf() === 101; + } + + return [11].every(callbackfn, 101) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js new file mode 100644 index 0000000000..d20608ccab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-5-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js", + + description: "Array.prototype.every - string primitive can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this.valueOf() === "abc"; + } + + return [11].every(callbackfn, "abc") && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js new file mode 100644 index 0000000000..092f641062 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js", + +description: "Array.prototype.every - thisArg is Array", + +test: function testcase() { + var res = false; + var a = new Array(); + a.res = true; + function callbackfn(val, idx, obj) + { + return this.res; + } + + var arr = [1]; + + if(arr.every(callbackfn, a) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js new file mode 100644 index 0000000000..bd2eca3f93 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js", + +description: "Array.prototype.every - thisArg is object from object template(prototype)", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + foo.prototype.res = true; + var f = new foo(); + var arr = [1]; + + if(arr.every(callbackfn,f) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js new file mode 100644 index 0000000000..2acca4ffe9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js", + +description: "Array.prototype.every - thisArg is object from object template", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + var f = new foo(); + f.res = true; + var arr = [1]; + + if(arr.every(callbackfn,f) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js new file mode 100644 index 0000000000..182c61eb7d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-5-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js", + +description: "Array.prototype.every - thisArg is function", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + foo.res = true; + var arr = [1]; + + if(arr.every(callbackfn,foo) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js new file mode 100644 index 0000000000..6b0c539086 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-5-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js", + + description: "Array.prototype.every - built-in functions can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === eval; + } + + return [11].every(callbackfn, eval) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js new file mode 100644 index 0000000000..d2aa45652f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js", + + description: "Array.prototype.every - Function Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objFunction = function () { }; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objFunction; + } + + return [11].every(callbackfn, objFunction) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js new file mode 100644 index 0000000000..49e92b660c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.16-7-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js", + +description: "Array.prototype.every considers new elements added to array after the call", + +test: function testcase() { + + var calledForThree = false; + + function callbackfn(val, Idx, obj) + { + arr[2] = 3; + if(val == 3) + calledForThree = true; + return true; + } + + var arr = [1,2,,4,5]; + + var res = arr.every(callbackfn); + + return calledForThree; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js new file mode 100644 index 0000000000..5a22949709 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-7-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js", + +description: "Array.prototype.every considers new value of elements in array after the call", + +test: function testcase() { + + function callbackfn(val, Idx, obj) + { + arr[4] = 6; + if(val < 6) + return true; + else + return false; + } + + var arr = [1,2,3,4,5]; + + if(arr.every(callbackfn) === false) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js new file mode 100644 index 0000000000..041f8ace48 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-7-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js", + +description: "Array.prototype.every doesn't visit deleted elements in array after the call", + +test: function testcase() { + + function callbackfn(val, Idx, obj) + { + delete arr[2]; + if(val == 3) + return false; + else + return true; + } + + var arr = [1,2,3,4,5]; + + if(arr.every(callbackfn) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js new file mode 100644 index 0000000000..449c873e28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-7-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js", + +description: "Array.prototype.every doesn't visit deleted elements when Array.length is decreased", + +test: function testcase() { + + function callbackfn(val, Idx, obj) + { + arr.length = 3; + if(val < 4) + return true; + else + return false; + } + + var arr = [1,2,3,4,6]; + + if(arr.every(callbackfn) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js new file mode 100644 index 0000000000..c474a28b3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.16-7-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js", + +description: "Array.prototype.every doesn't consider newly added elements in sparse array", + +test: function testcase() { + + function callbackfn(val, Idx, obj) + { + arr[1000] = 3; + if(val < 3) + return true; + else + return false; + } + + var arr = new Array(10); + arr[1] = 1; + arr[2] = 2; + + if(arr.every(callbackfn) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js new file mode 100644 index 0000000000..e4cbc45000 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.16-7-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js", + +description: "Array.prototype.every visits deleted element in array after the call when same index is also present in prototype", + +test: function testcase() { + + function callbackfn(val, Idx, obj) + { + delete arr[2]; + if(val == 3) + return false; + else + return true; + } + + Array.prototype[2] = 3; + var arr = [1,2,3,4,5]; + + var res = arr.every(callbackfn); + delete Array.prototype[2]; + + if(res === false) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js new file mode 100644 index 0000000000..a57a698abd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js", + + description: "Array.prototype.every - Deleting the array itself within the callbackfn of Array.prototype.every is successful once Array.prototype.every is called for all elements", + + test: function testcase() { + var o = new Object(); + o.arr = [1, 2, 3, 4, 5]; + + function callbackfn(val, Idx, obj) { + delete o.arr; + if (val === Idx + 1) + return true; + else + return false; + } + + return o.arr.every(callbackfn) && !o.hasOwnProperty("arr"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js new file mode 100644 index 0000000000..3af5b7901e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-7-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js", + + description: "Array.prototype.every - no observable effects occur if len is 0", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, 1: 12, length: 0 }; + + return Array.prototype.every.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js new file mode 100644 index 0000000000..441ddca9d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js", + + description: "Array.prototype.every - modifications to length don't change number of iterations", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val > 10; + } + + var obj = { 1: 12, 2: 9, length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + obj.length = 3; + return 11; + }, + configurable: true + }); + + return Array.prototype.every.call(obj, callbackfn) && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js new file mode 100644 index 0000000000..f4d6baf688 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-7-b-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js", + +description: "Array.prototype.every - callbackfn not called for indexes never been assigned values", + +test: function testcase() { + + var callCnt = 0.; + function callbackfn(val, Idx, obj) + { + callCnt++; + return true; + } + + var arr = new Array(10); + arr[1] = undefined; + arr.every(callbackfn); + if( callCnt === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js new file mode 100644 index 0000000000..8b0ebb901f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.16-7-b-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js", + + description: "Array.prototype.every - deleting property of prototype causes prototype index property not to be visited on an Array-like Object", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx !== 1; + } + var arr = { 2: 2, length: 20 }; + + Object.defineProperty(arr, "0", { + get: function () { + delete Object.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + return Array.prototype.every.call(arr, callbackfn) && accessed; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js new file mode 100644 index 0000000000..2ab3c435cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.16-7-b-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js", + + description: "Array.prototype.every - deleting property of prototype causes prototype index property not to be visited on an Array", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx !== 1; + } + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + return arr.every(callbackfn) && accessed; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js new file mode 100644 index 0000000000..045453021e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.16-7-b-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js", + + description: "Array.prototype.every - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return false; + } else { + return true; + } + } + var arr = { 0: 0, 1: 111, 2: 2, length: 10 }; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + return !Array.prototype.every.call(arr, callbackfn); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js new file mode 100644 index 0000000000..d1720f262a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.16-7-b-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js", + + description: "Array.prototype.every - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return false; + } else { + return true; + } + } + var arr = [0, 111, 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + return !arr.every(callbackfn); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js new file mode 100644 index 0000000000..1786ec8d47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-7-b-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js", + + description: "Array.prototype.every - decreasing length of array causes index property not to be visited", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx !== 3; + } + var arr = [0, 1, 2, "last"]; + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 3; + return 0; + }, + configurable: true + }); + + return arr.every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js new file mode 100644 index 0000000000..b2857c1fe3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.16-7-b-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js", + + description: "Array.prototype.every - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "prototype") { + return false; + } else { + return true; + } + } + var arr = [0, 1, 2]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + return !arr.every(callbackfn); + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js new file mode 100644 index 0000000000..0dfbf7aafc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.16-7-b-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js", + + description: "Array.prototype.every - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "unconfigurable") { + return false; + } else { + return true; + } + } + + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + return !arr.every(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js new file mode 100644 index 0000000000..cff483bf6c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.16-7-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js", + + description: "Array.prototype.every - added properties in step 2 are visible here", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "length") { + return false; + } else { + return true; + } + } + + var arr = { }; + + Object.defineProperty(arr, "length", { + get: function () { + arr[2] = "length"; + return 3; + }, + configurable: true + }); + + return !Array.prototype.every.call(arr, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js new file mode 100644 index 0000000000..81c09da6ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-7-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js", + + description: "Array.prototype.every - deleted properties in step 2 are visible here", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx !== 2; + } + var arr = { 2: 6.99, 8: 19}; + + Object.defineProperty(arr, "length", { + get: function () { + delete arr[2]; + return 10; + }, + configurable: true + }); + + return Array.prototype.every.call(arr, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js new file mode 100644 index 0000000000..726db25d12 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.16-7-b-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js", + + description: "Array.prototype.every - properties added into own object after current position are visited on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return false; + } else { + return true; + } + } + + var arr = { length: 2 }; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + return !Array.prototype.every.call(arr, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js new file mode 100644 index 0000000000..28e0aac752 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.16-7-b-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js", + + description: "Array.prototype.every - properties added into own object after current position are visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return false; + } else { + return true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + return !arr.every(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js new file mode 100644 index 0000000000..7fb570b9e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.16-7-b-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js", + + description: "Array.prototype.every - properties can be added to prototype after current position are visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 6.99) { + return false; + } else { + return true; + } + } + var arr = { length: 2 }; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + return !Array.prototype.every.call(arr, callbackfn); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js new file mode 100644 index 0000000000..1f462a5f93 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.16-7-b-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js", + + description: "Array.prototype.every - properties can be added to prototype after current position are visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 6.99) { + return false; + } else { + return true; + } + } + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + return !arr.every(callbackfn); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js new file mode 100644 index 0000000000..1c5317a52d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.16-7-b-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js", + + description: "Array.prototype.every - deleting own property causes index property not to be visited on an Array-like object", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx !== 1; + } + var obj = { length: 2 }; + + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + return Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js new file mode 100644 index 0000000000..797f8be4c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.16-7-b-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js", + + description: "Array.prototype.every - deleting own property causes index property not to be visited on an Array", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx !== 1; + } + var arr = [1, 2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + return arr.every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js new file mode 100644 index 0000000000..3408c94887 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.16-7-c-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js", + + description: "Array.prototype.every - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var kValue = { }; + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val !== kValue; + } else { + return true; + } + } + + var obj = { 5: kValue, length: 100 }; + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js new file mode 100644 index 0000000000..ec061426ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js", + + description: "Array.prototype.every - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 2) { + return val !== 12; + } else { + return true; + } + } + + var arr = []; + + Object.defineProperty(arr, "2", { + get: function () { + return 12; + }, + configurable: true + }); + + return !arr.every(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js new file mode 100644 index 0000000000..be5ad8ac72 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.16-7-c-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js", + + description: "Array.prototype.every - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 5; + } else { + return true; + } + } + + var proto = { 0: 5, 1: 6 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Object.defineProperty(child, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + return !Array.prototype.every.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js new file mode 100644 index 0000000000..67653000a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.16-7-c-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js", + + description: " Array.prototype.every - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 10; + } else { + return true; + } + } + + var arr = []; + try { + Array.prototype[0] = 10; + + Object.defineProperty(arr, "0", { + get: function () { + return 111; + }, + configurable: true + }); + + return !arr.every(callbackfn); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js new file mode 100644 index 0000000000..a030c5eb71 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.16-7-c-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js", + + description: "Array.prototype.every - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === 6; + } else { + return true; + } + } + + var proto = {}; + + Object.defineProperty(proto, "1", { + get: function () { + return 6; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Object.defineProperty(child, "1", { + get: function () { + return 12; + }, + configurable: true + }); + + + return !Array.prototype.every.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js new file mode 100644 index 0000000000..f5fb913647 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.16-7-c-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js", + + description: " Array.prototype.every - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 5; + } else { + return true; + } + } + + var arr = []; + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 5; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + return !arr.every(callbackfn); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js new file mode 100644 index 0000000000..bd50b27aa2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.16-7-c-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js", + + description: "Array.prototype.every - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val !== 11; + } else { + return true; + } + } + + var proto = {}; + + Object.defineProperty(proto, "1", { + get: function () { + return 11; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 20; + + return !Array.prototype.every.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js new file mode 100644 index 0000000000..baef33bc3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.16-7-c-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js", + + description: "Array.prototype.every - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val !== 11; + } else { + return true; + } + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + return ![, , , ].every(callbackfn); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js new file mode 100644 index 0000000000..70e8b5d049 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-7-c-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js", + + description: "Array.prototype.every - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return typeof val === "undefined"; + } + + var obj = { length: 2 }; + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + return Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js new file mode 100644 index 0000000000..e98b9d1efb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.16-7-c-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js", + + description: "Array.prototype.every - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return typeof val === "undefined"; + } + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + return arr.every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js new file mode 100644 index 0000000000..6ab7bc47dc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js", + + description: "Array.prototype.every - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return typeof val === "undefined"; + } + + var obj = { length: 2 }; + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + try { + Object.prototype[1] = 10; + return Array.prototype.every.call(obj, callbackfn) && accessed; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js new file mode 100644 index 0000000000..13939b80bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js", + + description: "Array.prototype.every - element to be retrieved is own data property on an Array", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val === 11; + } + + return [11].every(callbackfn) && 1 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js new file mode 100644 index 0000000000..48908c3bcb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.16-7-c-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js", + + description: "Array.prototype.every - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return typeof val === "undefined"; + } + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + try { + Array.prototype[0] = 100; + return arr.every(callbackfn) && accessed; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js new file mode 100644 index 0000000000..c39fb241f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.16-7-c-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js", + + description: "Array.prototype.every - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return typeof val === "undefined"; + } + + var proto = {}; + Object.defineProperty(proto, "1", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + + return Array.prototype.every.call(child, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js new file mode 100644 index 0000000000..e13fb45f09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js", + + description: "Array.prototype.every - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return typeof val === "undefined"; + } + + try { + Object.defineProperty(Array.prototype, "0", { + set: function () { }, + configurable: true + }); + + return [, ].every(callbackfn) && accessed; + } finally { + delete Array.prototype[0]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.js new file mode 100644 index 0000000000..35d51ec535 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.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: "15.4.4.16-7-c-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.js", + + description: "Array.prototype.every - This object is an global object which contains index property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val !== 11; + } else { + return true; + } + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 11; + fnGlobalObject().length = 1; + return !Array.prototype.every.call(fnGlobalObject(), callbackfn); + } finally { + delete fnGlobalObject()[0]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js new file mode 100644 index 0000000000..be2a2cff26 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.16-7-c-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js", + + description: "Array.prototype.every - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val === 11; + } + + var func = function (a, b) { + return Array.prototype.every.call(arguments, callbackfn); + }; + + return func(11) && called === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js new file mode 100644 index 0000000000..35b9be0d3a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js", + + description: "Array.prototype.every - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + if (idx === 0) { + return val === 11; + } else if (idx === 1) { + return val === 9; + } else { + return false; + } + } + + var func = function (a, b) { + return Array.prototype.every.call(arguments, callbackfn); + }; + + return func(11, 9) && called === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js new file mode 100644 index 0000000000..3366eb989c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js", + + description: "Array.prototype.every - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + if (idx < 2) { + return val > 10; + } else if (idx === 2) { + return val < 10; + } else { + return false; + } + } + + var func = function (a, b) { + return Array.prototype.every.call(arguments, callbackfn); + }; + + return func(11, 12, 9) && called === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js new file mode 100644 index 0000000000..3db4c0e8b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.16-7-c-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js", + + description: "Array.prototype.every - element changed by getter on previous iterations is observed on an Array", + + test: function testcase() { + + var preIterVisible = false; + var arr = []; + + function callbackfn(val, idx, obj) { + return val > 10; + } + + Object.defineProperty(arr, "0", { + get: function () { + preIterVisible = true; + return 11; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return 9; + } else { + return 11; + } + }, + configurable: true + }); + + return !arr.every(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js new file mode 100644 index 0000000000..62065eb270 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.16-7-c-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js", + + description: "Array.prototype.every - element changed by getter on previous iterations is observed on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var preIterVisible = false; + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + preIterVisible = true; + return 11; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return 9; + } else { + return 13; + } + }, + configurable: true + }); + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js new file mode 100644 index 0000000000..7ecdaaf6f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js", + + description: "Array.prototype.every - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val === 100; + } else { + return true; + } + } + + var proto = { 0: 11, 5: 100 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[5] = "abc"; + child.length = 10; + + return !Array.prototype.every.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js new file mode 100644 index 0000000000..84de3a56ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.16-7-c-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js", + + description: "Array.prototype.every - unnhandled exceptions happened in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + return true; + } + + var obj = { 0: 11, 5: 10, 10: 8, length: 20 }; + Object.defineProperty(obj, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + Array.prototype.every.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js new file mode 100644 index 0000000000..f8ce5a10f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.16-7-c-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js", + + description: "Array.prototype.every - unhandled exceptions happened in getter terminate iteration on an Array", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + return true; + } + + var arr = []; + arr[5] = 10; + arr[10] = 100; + + Object.defineProperty(arr, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + arr.every(callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js new file mode 100644 index 0000000000..b104501271 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-7-c-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js", + + description: "Array.prototype.every - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + var called = 0; + function callbackfn(val, idx, obj) { + called++; + return val === 12; + } + + try { + Array.prototype[0] = 11; + Array.prototype[1] = 11; + + return [12, 12].every(callbackfn) && called === 2; + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js new file mode 100644 index 0000000000..6bbe6be8f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.16-7-c-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js", + + description: "Array.prototype.every - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 5; + } else { + return true; + } + } + + var proto = {}; + + Object.defineProperty(proto, "0", { + get: function () { + return 5; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + Object.defineProperty(child, "0", { + value: 11, + configurable: true + }); + child[1] = 12; + + return !Array.prototype.every.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js new file mode 100644 index 0000000000..ddf02dd9d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js", + + description: "Array.prototype.every - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val === 11; + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 9; + }, + configurable: true + }); + return [11].every(callbackfn) && accessed; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js new file mode 100644 index 0000000000..948330efc1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.16-7-c-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js", + + description: "Array.prototype.every - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = 'abc'; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val !== kValue; + } else { + return true; + } + } + + var proto = { 5: kValue }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + return !Array.prototype.every.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js new file mode 100644 index 0000000000..96c4e4b45c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-7-c-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js", + + description: "Array.prototype.every - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val !== 13; + } else { + return true; + } + } + + try { + Array.prototype[1] = 13; + return ![, , , ].every(callbackfn); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js new file mode 100644 index 0000000000..6e6ca93d95 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js", + + description: "Array.prototype.every - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val !== 11; + } else { + return true; + } + } + + var obj = { 10: 10, length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js new file mode 100644 index 0000000000..dbaa14488f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.16-7-c-ii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js", + +description: "Array.prototype.every - callbackfn called with correct parameters", + +test: function testcase() { + + function callbackfn(val, Idx, obj) + { + if(obj[Idx] === val) + return true; + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + + if(arr.every(callbackfn) === true) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js new file mode 100644 index 0000000000..753b612351 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js", + + description: "Array.prototype.every - callbackfn is called with 1 formal parameter", + + test: function testcase() { + + var called = 0; + + function callbackfn(val) { + called++; + return val > 10; + } + + return [11, 12].every(callbackfn) && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js new file mode 100644 index 0000000000..d16315d97b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js", + + description: "Array.prototype.every - callbackfn is called with 2 formal parameter", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx) { + called++; + return val > 10 && arguments[2][idx] === val; + } + + return [11, 12].every(callbackfn) && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js new file mode 100644 index 0000000000..d9889b0163 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-ii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js", + + description: "Array.prototype.every - callbackfn is called with 3 formal parameter", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val > 10 && obj[idx] === val; + } + + return [11, 12, 13].every(callbackfn) && 3 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js new file mode 100644 index 0000000000..185f587f86 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-ii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js", + + description: "Array.prototype.every - callbackfn that uses arguments object to get parameter value", + + test: function testcase() { + + var called = 0; + + function callbackfn() { + called++; + return arguments[2][arguments[1]] === arguments[0]; + } + + return [11, 12].every(callbackfn) && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js new file mode 100644 index 0000000000..86ad0aa19d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-7-c-ii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js", + + description: "Array.prototype.every - 'this' of 'callbackfn' is a Boolean object when T is not an object (T is a boolean primitive)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this.valueOf() !== false; + } + + var obj = { 0: 11, length: 2 }; + + return !Array.prototype.every.call(obj, callbackfn, false) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js new file mode 100644 index 0000000000..c5de2558d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-7-c-ii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js", + + description: "Array.prototype.every -'this' of 'callbackfn' is a Number object when T is not an object (T is a number primitive)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, o) { + accessed = true; + return 5 === this.valueOf(); + } + + var obj = { 0: 11, length: 2 }; + + return Array.prototype.every.call(obj, callbackfn, 5) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js new file mode 100644 index 0000000000..bed0efb6de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-7-c-ii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js", + + description: "Array.prototype.every - 'this' of 'callbackfn' is an String object when T is not an object (T is a string primitive)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return 'hello' === this.valueOf(); + } + + var obj = { 0: 11, length: 2 }; + + return Array.prototype.every.call(obj, callbackfn, "hello") && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js new file mode 100644 index 0000000000..345165ed09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-7-c-ii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js", + + description: "Array.prototype.every - non-indexed properties are not called", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val !== 8; + } + + var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 }; + + return Array.prototype.every.call(obj, callbackfn) && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js new file mode 100644 index 0000000000..8da4147ed2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-ii-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js", + +description: "Array.prototype.every - callbackfn takes 3 arguments", + +test: function testcase() { + + function callbackfn(val, Idx, obj) + { + if(arguments.length === 3) //verify if callbackfn was called with 3 parameters + return true; + } + + var arr = [0,1,true,null,new Object(),"five"]; + arr[999999] = -6.6; + + if(arr.every(callbackfn) === true) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js new file mode 100644 index 0000000000..27b365977e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.16-7-c-ii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js", + + description: "Array.prototype.every - callbackfn called with correct parameters (thisArg is correct)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return 10 === this.threshold; + } + + var thisArg = { threshold: 10 }; + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.every.call(obj, callbackfn, thisArg); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js new file mode 100644 index 0000000000..646e09db6c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.16-7-c-ii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js", + + description: "Array.prototype.every - callbackfn called with correct parameters (kValue is correct)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + if (idx === 0) { + return val === 11; + } + + if (idx === 1) { + return val === 12; + } + + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + return Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js new file mode 100644 index 0000000000..9a221130ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.16-7-c-ii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js", + + description: "Array.prototype.every - callbackfn called with correct parameters (the index k is correct)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + if (val === 11) { + return idx === 0; + } + + if (val === 12) { + return idx === 1; + } + + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + return Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js new file mode 100644 index 0000000000..cf0caaecbb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-7-c-ii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js", + + description: "Array.prototype.every - callbackfn called with correct parameters (this object O is correct)", + + test: function testcase() { + + var called = 0; + var obj = { 0: 11, 1: 12, length: 2 }; + + function callbackfn(val, idx, o) { + called++; + return obj === o; + } + + return Array.prototype.every.call(obj, callbackfn) && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js new file mode 100644 index 0000000000..baea080df2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.16-7-c-ii-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js", + +description: "Array.prototype.every immediately returns false if callbackfn returns false", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + if(idx > 5) + return false; + else + return true; + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + + if(arr.every(callbackfn) === false && callCnt === 7) + return true; + + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js new file mode 100644 index 0000000000..6450fcb789 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-7-c-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js", + + description: "Array.prototype.every - k values are passed in ascending numeric order", + + test: function testcase() { + + var arr = [0, 1, 2, 3, 4, 5]; + var lastIdx = 0; + var called = 0; + function callbackfn(val, idx, o) { + called++; + if (lastIdx !== idx) { + return false; + } else { + lastIdx++; + return true; + } + } + + return arr.every(callbackfn) && arr.length === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js new file mode 100644 index 0000000000..82c85a6215 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.16-7-c-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js", + + description: "Array.prototype.every - k values are accessed during each iteration and not prior to starting the loop on an Array", + + test: function testcase() { + var called = 0; + var kIndex = []; + + //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time. + function callbackfn(val, idx, obj) { + called++; + //Each position should be visited one time, which means k is accessed one time during iterations. + if (typeof kIndex[idx] === "undefined") { + //when current position is visited, its previous index should has been visited. + if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") { + return false; + } + kIndex[idx] = 1; + return true; + } else { + return false; + } + } + + return [11, 12, 13, 14].every(callbackfn, undefined) && 4 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js new file mode 100644 index 0000000000..a8ffac80b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.16-7-c-ii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js", + + description: "Array.prototype.every - arguments to callbackfn are self consistent", + + test: function testcase() { + + var accessed = false; + var thisArg = {}; + var obj = { 0: 11, length: 1 }; + + function callbackfn() { + accessed = true; + return this === thisArg && + arguments[0] === 11 && + arguments[1] === 0 && + arguments[2] === obj; + } + + return Array.prototype.every.call(obj, callbackfn, thisArg) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js new file mode 100644 index 0000000000..9bd5e9b6e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.16-7-c-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js", + + description: "Array.prototype.every - unhandled exceptions happened in callbackfn terminate iteration", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + if (called === 1) { + throw new Error("Exception occurred in callbackfn"); + } + return true; + } + + var obj = { 0: 11, 4: 10, 10: 8, length: 20 }; + + try { + Array.prototype.every.call(obj, callbackfn); + return false; + } catch (ex) { + return 1 === called; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js new file mode 100644 index 0000000000..a06e1e0772 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.16-7-c-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js", + + description: "Array.prototype.every - element changed by callbackfn on previous iterations is observed", + + test: function testcase() { + + var obj = { 0: 11, 1: 12, length: 2 }; + + function callbackfn(val, idx, o) { + if (idx === 0) { + obj[idx + 1] = 8; + } + return val > 10; + } + + + + return !Array.prototype.every.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js new file mode 100644 index 0000000000..5e121edffc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js", + + description: "Array.prototype.every - callbackfn is called with 0 formal parameter", + + test: function testcase() { + + var called = 0; + + function callbackfn() { + called++; + return true; + } + + return [11, 12].every(callbackfn) && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js new file mode 100644 index 0000000000..0311d35fdb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-7-c-iii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js", + + description: "Array.prototype.every - return value of callbackfn is undefined", + + test: function testcase() { + + var accessed = false; + var obj = { 0: 11, length: 1 }; + + function callbackfn(val, idx, o) { + accessed = true; + return undefined; + } + + + + return !Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js new file mode 100644 index 0000000000..bc9f46691c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js", + + description: "Array.prototype.every - return value of callbackfn is a number (value is Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return Infinity; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js new file mode 100644 index 0000000000..d4678b8039 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js", + + description: "Array.prototype.every - return value of callbackfn is a number (value is -Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return -Infinity; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js new file mode 100644 index 0000000000..8da2d649cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js", + + description: "Array.prototype.every - return value of callbackfn is a number (value is NaN)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return NaN; + } + + return ![11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js new file mode 100644 index 0000000000..a87d1fa007 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js", + + description: "Array.prototype.every - return value of callbackfn is an empty string", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return ""; + } + + return ![11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js new file mode 100644 index 0000000000..e45abfcaad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js", + + description: "Array.prototype.every - return value of callbackfn is a non-empty string", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return "non-empty string"; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js new file mode 100644 index 0000000000..a7ec2bf35b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js", + + description: "Array.prototype.every - return value of callbackfn is a Function object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return function () { }; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js new file mode 100644 index 0000000000..d20e5aef27 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js", + + description: "Array.prototype.every - return value of callbackfn is an Array object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return []; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js new file mode 100644 index 0000000000..2cd0878999 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js", + + description: "Array.prototype.every - return value of callbackfn is a String object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return new String(); + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js new file mode 100644 index 0000000000..0b9ba7b13e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js", + + description: "Array.prototype.every - return value of callbackfn is a Boolean object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return new Boolean(); + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js new file mode 100644 index 0000000000..ec258b07b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js", + + description: "Array.prototype.every - return value of callbackfn is a Number object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return new Number(); + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js new file mode 100644 index 0000000000..d4e81fb08e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-7-c-iii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js", + + description: "Array.prototype.every - return value of callbackfn is null", + + test: function testcase() { + + var accessed = false; + var obj = { 0: 11, length: 1 }; + + function callbackfn(val, idx, obj) { + accessed = true; + return null; + } + + + + return !Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js new file mode 100644 index 0000000000..9455283db7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js", + + description: "Array.prototype.every - return value of callbackfn is the Math object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return Math; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js new file mode 100644 index 0000000000..af3cda71bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js", + + description: "Array.prototype.every - return value of callbackfn is a Date object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return new Date(); + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js new file mode 100644 index 0000000000..244453a1db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js", + + description: "Array.prototype.every - return value of callbackfn is a RegExp object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return new RegExp(); + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js new file mode 100644 index 0000000000..be9fda290a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js", + + description: "Array.prototype.every - return value of callbackfn is the JSON object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return JSON; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js new file mode 100644 index 0000000000..0621ee4372 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js", + + description: "Array.prototype.every - return value of callbackfn is an Error object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return new EvalError(); + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js new file mode 100644 index 0000000000..152d295282 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js", + + description: "Array.prototype.every - return value of callbackfn is the Arguments object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return arguments; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js new file mode 100644 index 0000000000..39230af6f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js", + + description: "Array.prototype.every - return value of callbackfn is the global object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return fnGlobalObject(); + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js new file mode 100644 index 0000000000..f2861e1f12 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js @@ -0,0 +1,72 @@ +/// 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: "15.4.4.16-7-c-iii-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js", + + description: "Array.prototype.every - false prevents further side effects", + + test: function testcase() { + + var result = false; + var obj = { length: 20 }; + + function callbackfn(val, idx, obj) { + if (idx > 1) { + result = true; + } + return val > 10; + } + + Object.defineProperty(obj, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + return 8; + }, + configurable: true + }); + + Object.defineProperty(obj, "2", { + get: function () { + result = true; + return 8; + }, + configurable: true + }); + + return !Array.prototype.every.call(obj, callbackfn) && !result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js new file mode 100644 index 0000000000..da5ac19abf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js", + + description: "Array.prototype.every - return value (new Boolean(false)) of callbackfn is treated as true value", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return new Boolean(false); + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js new file mode 100644 index 0000000000..b3a7c44413 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-7-c-iii-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js", + + description: "Array.prototype.every - return value of callbackfn is a boolean (value is false)", + + test: function testcase() { + + var accessed = false; + var obj = { 0: 11, length: 1 }; + + function callbackfn(val, idx, obj) { + accessed = true; + return false; + } + + return !Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js new file mode 100644 index 0000000000..a0f4a1b32c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.16-7-c-iii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js", + + description: "Array.prototype.every - return value of callbackfn is a boolean (value is true)", + + test: function testcase() { + + var accessed = false; + var obj = { 0: 11, length: 1 }; + + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + + + return Array.prototype.every.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js new file mode 100644 index 0000000000..e895ab454e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js", + + description: "Array.prototype.every - return value of callbackfn is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return 0; + } + + return ![11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js new file mode 100644 index 0000000000..abba851be7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js", + + description: "Array.prototype.every - return value of callbackfn is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return +0; + } + + return ![11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js new file mode 100644 index 0000000000..31186608a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js", + + description: "Array.prototype.every - return value of callbackfn is a nunmber (value is -0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return -0; + } + + return ![11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js new file mode 100644 index 0000000000..70b3665766 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js", + + description: "Array.prototype.every - return value of callbackfn is a number (value is positive number)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return 5; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js new file mode 100644 index 0000000000..38a9a7cb74 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-7-c-iii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js", + + description: "Array.prototype.every - return value of callbackfn is a number (value is negative number)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return -5; + } + + return [11].every(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.every); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js new file mode 100644 index 0000000000..cac3dff888 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.16-8-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js", + +description: "Array.prototype.every returns true if 'length' is 0 (empty array)", + +test: function testcase() { + function cb() {} + var i = [].every(cb); + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js new file mode 100644 index 0000000000..371dfa595f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.16-8-10", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js", + +description: "Array.prototype.every - subclassed array when length is reduced", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 2; + + function cb(val) + { + if(val>2) + return false; + else + return true; + } + var i = f.every(cb); + + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js new file mode 100644 index 0000000000..abb942291a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.16-8-11", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js", + +description: "Array.prototype.every returns true when all calls to callbackfn return true", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + return true; + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + + if(arr.every(callbackfn) === true && callCnt === 10) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js new file mode 100644 index 0000000000..fe4b723f9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.16-8-12", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js", + +description: "Array.prototype.every doesn't mutate the array on which it is called on", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + return true; + } + var arr = [1,2,3,4,5]; + arr.every(callbackfn); + if(arr[0] === 1 && + arr[1] === 2 && + arr[2] === 3 && + arr[3] === 4 && + arr[4] === 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js new file mode 100644 index 0000000000..7548f4339f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.16-8-13", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js", + +description: "Array.prototype.every doesn't visit expandos", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + return true; + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + arr["i"] = 10; + arr[true] = 11; + + if(arr.every(callbackfn) === true && callCnt === 10) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js new file mode 100644 index 0000000000..9a0937d02f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.16-8-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js", + +description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden to null (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = null; + + function cb(){} + var i = f.every(cb); + + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js new file mode 100644 index 0000000000..857a3f8776 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.16-8-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js", + +description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden to false (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = false; + + function cb(){} + var i = f.every(cb); + + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js new file mode 100644 index 0000000000..aa897d9f89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.16-8-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js", + +description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + function cb(){} + var i = f.every(cb); + + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js new file mode 100644 index 0000000000..f6769930df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.16-8-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js", + +description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = '0'; + + function cb(){} + var i = f.every(cb); + + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js new file mode 100644 index 0000000000..5282726f94 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.16-8-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js", + +description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { valueOf: function () { return 0;}}; + f.length = o; + + function cb(){} + var i = f.every(cb); + + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js new file mode 100644 index 0000000000..5597464a6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.16-8-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js", + +description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + function cb(){} + var i = f.every(cb); + + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js new file mode 100644 index 0000000000..4472c5c6cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.16-8-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js", + +description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden with []", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + var i = f.every(cb); + + if (i === true) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.every); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js new file mode 100644 index 0000000000..57d8b3df0a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js @@ -0,0 +1,36 @@ +/// 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: "15.4.4.17-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js", + +description: "Array.prototype.some must exist as a function", + +test: function testcase() { + var f = Array.prototype.some; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js new file mode 100644 index 0000000000..2937afeb78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.17-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js", + +description: "Array.prototype.some.length must be 1", + +test: function testcase() { + if (Array.prototype.some.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js new file mode 100644 index 0000000000..b41f07b2df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js", + + description: "Array.prototype.some applied to undefined throws a TypeError", + + test: function testcase() { + try { + Array.prototype.some.call(undefined); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js new file mode 100644 index 0000000000..7e1ffe977a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js", + + description: "Array.prototype.some applied to the Math object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return '[object Math]' === Object.prototype.toString.call(obj); + } + + try { + Math.length = 1; + Math[0] = 1; + return Array.prototype.some.call(Math, callbackfn); + } finally { + delete Math[0]; + delete Math.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js new file mode 100644 index 0000000000..1296b3630d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js", + + description: "Array.prototype.some applied to Date object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Date; + } + + var obj = new Date(); + obj.length = 2; + obj[0] = 11; + obj[1] = 9; + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js new file mode 100644 index 0000000000..83b3e48145 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js", + + description: "Array.prototype.some applied to RegExp object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof RegExp; + } + + var obj = new RegExp(); + obj.length = 2; + obj[0] = 11; + obj[1] = 9; + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js new file mode 100644 index 0000000000..0572ab584b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js", + + description: "Array.prototype.some applied to the JSON object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return '[object JSON]' === Object.prototype.toString.call(obj); + } + + try { + JSON.length = 1; + JSON[0] = 1; + return Array.prototype.some.call(JSON, callbackfn); + } finally { + delete JSON.length; + delete JSON[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js new file mode 100644 index 0000000000..4a6da3b595 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js", + + description: "Array.prototype.some applied to Error object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Error; + } + + var obj = new Error(); + obj.length = 1; + obj[0] = 1; + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js new file mode 100644 index 0000000000..9a67f5dca0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js", + + description: "Array.prototype.some applied to the Arguments object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return '[object Arguments]' === Object.prototype.toString.call(obj); + } + + var obj = (function () { + return arguments; + }("a", "b")); + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js new file mode 100644 index 0000000000..e6ff4eceba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js", + + description: "Array.prototype.some applied to null throws a TypeError", + + test: function testcase() { + try { + Array.prototype.some.call(null); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js new file mode 100644 index 0000000000..4708054304 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js", + + description: "Array.prototype.some applied to boolean primitive", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Boolean; + } + + try { + Boolean.prototype[0] = 1; + Boolean.prototype.length = 1; + return Array.prototype.some.call(false, callbackfn); + } finally { + delete Boolean.prototype[0]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js new file mode 100644 index 0000000000..6e84eba50f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js", + + description: "Array.prototype.some applied to Boolean object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Boolean; + } + + var obj = new Boolean(true); + obj.length = 2; + obj[0] = 11; + obj[1] = 9; + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js new file mode 100644 index 0000000000..83f23268fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.17-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js", + + description: "Array.prototype.some applied to number primitive", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Number; + } + + try { + Number.prototype[1] = true; + Number.prototype.length = 2; + + return Array.prototype.some.call(5, callbackfn); + } finally { + delete Number.prototype[1]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js new file mode 100644 index 0000000000..da67400a9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js", + + description: "Array.prototype.some applied to Number object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Number; + } + + var obj = new Number(-128); + obj.length = 2; + obj[0] = 11; + obj[1] = 9; + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.js new file mode 100644 index 0000000000..98f35371ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.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: "15.4.4.17-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.js", + + description: "Array.prototype.some applied to applied to string primitive", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof String; + } + + return Array.prototype.some.call("hello\nw_orld\\!", callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js new file mode 100644 index 0000000000..37808a20ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js", + + description: "Array.prototype.some applied to String object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof String; + } + + var obj = new String("hello\nw_orld\\!"); + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js new file mode 100644 index 0000000000..dc1884a317 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js", + + description: "Array.prototype.some applied to Function object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Function; + } + + var obj = function (a, b) { + return a + b; + }; + obj[0] = 11; + obj[1] = 9; + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js new file mode 100644 index 0000000000..8dfe038ed1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.17-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js", + + description: "Array.prototype.some - 'length' is own data property on an Array-like object", + + test: function testcase() { + + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { + 0: 9, + 1: 11, + 2: 12, + length: 2 + }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js new file mode 100644 index 0000000000..d06e7ac76b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.17-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js", + + description: "Array.prototype.some - 'length' is an inherited accessor property on an Array-like object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 9; + child[1] = 11; + child[2] = 12; + + return Array.prototype.some.call(child, callbackfn1) && + !Array.prototype.some.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js new file mode 100644 index 0000000000..6050f1fe1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.17-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js", + + description: "Array.prototype.some - 'length' is an own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { + 0: 11, + 1: 12 + }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js new file mode 100644 index 0000000000..ec5523d661 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.17-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js", + + description: "Array.prototype.some - 'length' is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var obj = { 0: 11, 1: 12 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + } finally { + delete Object.prototype.length; + } + + }, + + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js new file mode 100644 index 0000000000..5f0ef80f5f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.17-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js", + + description: "Array.prototype.some - 'length' is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 11; + child[1] = 12; + + return !Array.prototype.some.call(child, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js new file mode 100644 index 0000000000..e6843545e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js", + + description: "Array.prototype.some - 'length' property doesn't exist on an Array-like object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, 1: 12 }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js new file mode 100644 index 0000000000..e0f3e32c79 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.17-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js", + + description: "Array.prototype.some - 'length' is property of the global object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 9; + fnGlobalObject()[1] = 11; + fnGlobalObject()[2] = 12; + fnGlobalObject().length = 2; + return Array.prototype.some.call(fnGlobalObject(), callbackfn1) && + !Array.prototype.some.call(fnGlobalObject(), callbackfn2); + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js new file mode 100644 index 0000000000..9ecfb06470 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.17-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js", + + description: "Array.prototype.some applied to the Arguments object which implements its own property get method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var func = function (a, b) { + arguments[2] = 12; + return Array.prototype.some.call(arguments, callbackfn1) && + !Array.prototype.some.call(arguments, callbackfn2); + }; + + return func(9, 11); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js new file mode 100644 index 0000000000..89c02bcb57 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js", + + description: "Array.prototype.some applied to String object which implements its own property get method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return parseInt(val, 10) > 1; + } + + function callbackfn2(val, idx, obj) { + return parseInt(val, 10) > 2; + } + + var str = new String("12"); + try { + String.prototype[2] = "3"; + return Array.prototype.some.call(str, callbackfn1) && + !Array.prototype.some.call(str, callbackfn2); + } finally { + delete String.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.js new file mode 100644 index 0000000000..c73adc9b32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.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: "15.4.4.17-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.js", + + description: "Array.prototype.some applied to Function object which implements its own property get method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var fun = function (a, b) { + return a + b; + }; + fun[0] = 9; + fun[1] = 11; + fun[2] = 12; + + return Array.prototype.some.call(fun, callbackfn1) && + !Array.prototype.some.call(fun, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js new file mode 100644 index 0000000000..eed692348b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js", + + description: "Array.prototype.some - 'length' is own data property on an Array", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + try { + Array.prototype[2] = 12; + + return [9, 11].some(callbackfn1) && + ![9, 11].some(callbackfn2); + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js new file mode 100644 index 0000000000..4a45dfa60b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.17-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js", + + description: "Array.prototype.some - 'length' is an own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[0] = 9; + child[1] = 11; + child[2] = 12; + + return Array.prototype.some.call(child, callbackfn1) && + !Array.prototype.some.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js new file mode 100644 index 0000000000..54843e99ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js", + + description: "Array.prototype.some - 'length' is an own data property that overrides an inherited data property on an array", + + test: function testcase() { + var arrProtoLen = 0; + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + Array.prototype[2] = 12; + + return [9, 11].some(callbackfn1) && + ![9, 11].some(callbackfn2); + } finally { + Array.prototype.length = arrProtoLen; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js new file mode 100644 index 0000000000..555f4351a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.17-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js", + + description: "Array.prototype.some - 'length' is an own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + + child[0] = 9; + child[1] = 11; + child[2] = 12; + + return Array.prototype.some.call(child, callbackfn1) && + !Array.prototype.some.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js new file mode 100644 index 0000000000..b5b6a74075 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js", + + description: "Array.prototype.some - 'length' is an inherited data property on an Array-like object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = { length: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 9; + child[1] = 11; + child[2] = 12; + + return Array.prototype.some.call(child, callbackfn1) && + !Array.prototype.some.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js new file mode 100644 index 0000000000..8f35fc8187 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.17-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js", + + description: "Array.prototype.some - 'length' is an own accessor property on an Array-like object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { }; + + Object.defineProperty(obj, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + obj[0] = 9; + obj[1] = 11; + obj[2] = 12; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js new file mode 100644 index 0000000000..3f95bf725c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.17-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js", + + description: "Array.prototype.some - 'length' is an own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 9; + child[1] = 11; + child[2] = 12; + + return Array.prototype.some.call(child, callbackfn1) && + !Array.prototype.some.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.js new file mode 100644 index 0000000000..744124b44d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.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: "15.4.4.17-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.js", + + description: "Array.prototype.some - 'length' is an own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 9; + child[1] = 11; + child[2] = 12; + + return Array.prototype.some.call(child, callbackfn1) && + !Array.prototype.some.call(child, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js new file mode 100644 index 0000000000..ee24e1f978 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js", + + description: "Array.prototype.some - value of 'length' is undefined", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, length: undefined }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js new file mode 100644 index 0000000000..0c635f7958 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js", + + description: "Array.prototype.some - value of 'length' is a number (value is NaN)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, length: NaN }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js new file mode 100644 index 0000000000..610157fbcb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js", + + description: "Array.prototype.some - 'length' is a string containing a positive number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 9, 1: 11, 2: 12, length: "2" }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js new file mode 100644 index 0000000000..48bc181bdb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js", + + description: "Array.prototype.some - 'length' is a string containing a negative number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 9, 1: 11, 2: 12, length: "-4294967294" }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js new file mode 100644 index 0000000000..feafd20d6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.17-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js", + + description: "Array.prototype.some - 'length' is a string containing a decimal number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 9, 1: 11, 2: 12, length: "2.5" }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js new file mode 100644 index 0000000000..a4bf40f5e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.17-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js", + + description: "Array.prototype.some - 'length' is a string containing +/-Infinity", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var objOne = { 0: 11, length: "Infinity" }; + var objTwo = { 0: 11, length: "+Infinity" }; + var objThree = { 0: 11, length: "-Infinity" }; + + return !Array.prototype.some.call(objOne, callbackfn) && + !Array.prototype.some.call(objTwo, callbackfn) && + !Array.prototype.some.call(objThree, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js new file mode 100644 index 0000000000..f683fee04f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js", + + description: "Array.prototype.some - 'length' is a string containing an exponential number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 9, 1: 11, 2: 12, length: "2E0" }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js new file mode 100644 index 0000000000..1a408bd0d9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js", + + description: "Array.prototype.some - 'length' is a string containing a hex number", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 9, 1: 11, 2: 12, length: "0x0002" }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js new file mode 100644 index 0000000000..541ed0567e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js", + + description: "Array.prototype.some - 'length' is a string containing a number with leading zeros", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 9, 1: 11, 2: 12, length: "0002.00" }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js new file mode 100644 index 0000000000..b94b136542 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js", + + description: "Array.prototype.some - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, 1: 21, length: "two" }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js new file mode 100644 index 0000000000..a559e8404a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.17-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js", + + description: "Array.prototype.some - value of 'length' is an Object which has an own toString method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var toStringAccessed = false; + var obj = { + 0: 9, + 1: 11, + 2: 12, + + length: { + toString: function () { + toStringAccessed = true; + return '2'; + } + } + }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2) && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js new file mode 100644 index 0000000000..5d4701392f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js", + + description: "Array.prototype.some on an Array-like object if 'length' is 1 (length overridden to true(type conversion))", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 11, 1: 12, length: true }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js new file mode 100644 index 0000000000..f4d26c62f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.17-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js", + + description: "Array.prototype.some - value of 'length' is an Object which has an own valueOf method", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var valueOfAccessed = false; + + var obj = { + 0: 9, + 1: 11, + 2: 12, + length: { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + } + }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2) && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js new file mode 100644 index 0000000000..1cbfdbda40 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.17-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js", + + description: "Array.prototype.some - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var toStringAccessed = false; + var valueOfAccessed = false; + + var obj = { + 0: 9, + 1: 11, + 2: 12, + length: { + valueOf: function () { + valueOfAccessed = true; + return {}; + }, + toString: function () { + toStringAccessed = true; + return '2'; + } + } + }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2) && + valueOfAccessed && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js new file mode 100644 index 0000000000..0aef79354e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.17-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js", + + description: "Array.prototype.some throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var callbackfnAccessed = false; + var toStringAccessed = false; + var valueOfAccessed = false; + + function callbackfn(val, idx, obj) { + callbackfnAccessed = true; + return val > 10; + } + + var obj = { + 0: 11, + 1: 12, + + length: { + valueOf: function () { + valueOfAccessed = true; + return {}; + }, + toString: function () { + toStringAccessed = true; + return {}; + } + } + }; + + try { + Array.prototype.some.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof TypeError) && toStringAccessed && valueOfAccessed && !callbackfnAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js new file mode 100644 index 0000000000..b702fcb5b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js @@ -0,0 +1,76 @@ +/// 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: "15.4.4.17-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js", + + description: "Array.prototype.some uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var valueOfAccessed = false; + var toStringAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + child.toString = function () { + toStringAccessed = true; + return '1'; + }; + + var obj = { + 0: 9, + 1: 11, + 2: 12, + length: child + }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2) && + valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.js new file mode 100644 index 0000000000..065dbe9960 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.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: "15.4.4.17-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.js", + + description: "Array.prototype.some - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { + 0: 9, + 10: 11, + 11: 12, + length: 11.5 + }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js new file mode 100644 index 0000000000..62c8ed44c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.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: "15.4.4.17-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js", + + description: "Array.prototype.some - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { + 0: 9, + 1: 11, + 2: 12, + length: -4294967294.5 + }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js new file mode 100644 index 0000000000..00d12d52f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.17-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js", + + description: "Array.prototype.some - value of 'length' is boundary value (2^32)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { + 0: 12, + length: 4294967296 + }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js new file mode 100644 index 0000000000..317f5bfac8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js", + + description: "Array.prototype.some - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { + 0: 11, + 1: 12, + length: 4294967297 + }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js new file mode 100644 index 0000000000..4cfc0a5af3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js", + + description: "Array.prototype.some - value of 'length' is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, length: 0 }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js new file mode 100644 index 0000000000..b0f95eea4e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js", + + description: "Array.prototype.some - value of 'length' is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, length: +0 }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js new file mode 100644 index 0000000000..0f52c5fec7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js", + + description: "Array.prototype.some - value of 'length' is a number (value is -0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, length: -0 }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js new file mode 100644 index 0000000000..71a7505ead --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js", + + description: "Array.prototype.some - value of 'length' is a number (value is positive)", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 9, 1: 11, 2: 12, length: 2 }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js new file mode 100644 index 0000000000..53926a681b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js", + + description: "Array.prototype.some - value of 'length' is a number (value is negative)", + + test: function testcase() { + function callbackfn1(val, idx, obj) { + return val > 10; + } + + function callbackfn2(val, idx, obj) { + return val > 11; + } + + var obj = { 0: 9, 1: 11, 2: 12, length: -4294967294 }; + + return Array.prototype.some.call(obj, callbackfn1) && + !Array.prototype.some.call(obj, callbackfn2); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js new file mode 100644 index 0000000000..1d88715718 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js", + + description: "Array.prototype.some - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, length: Infinity }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js new file mode 100644 index 0000000000..156c925505 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js", + + description: "Array.prototype.some - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, length: -Infinity }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js new file mode 100644 index 0000000000..48e014d68b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.17-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js", + +description: "Array.prototype.some throws TypeError if callbackfn is undefined", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.some(); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js new file mode 100644 index 0000000000..aabd439076 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js", + + description: "Array.prototype.some - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.some.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js new file mode 100644 index 0000000000..7bc53d22a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js", + + description: "Array.prototype.some - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.some.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js new file mode 100644 index 0000000000..13f942c685 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-4-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js", + + description: "Array.prototype.some - 'callbackfn' is a function", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + return [9, 11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js new file mode 100644 index 0000000000..d4acd8c9ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.17-4-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js", + + description: "Array.prototype.some - calling with no callbackfn is the same as passing undefined for callbackfn", + + test: function testcase() { + var obj = { }; + var lengthAccessed = false; + var loopAccessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + lengthAccessed = true; + return 20; + }, + configurable: true + }); + Object.defineProperty(obj, "0", { + get: function () { + loopAccessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.some.call(obj); + return false; + } catch (ex) { + return (ex instanceof TypeError) && lengthAccessed && !loopAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js new file mode 100644 index 0000000000..3d99f24206 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.17-4-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js", + +description: "Array.prototype.some throws ReferenceError if callbackfn is unreferenced", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.some(foo); + } + catch(e) { + if(e instanceof ReferenceError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js new file mode 100644 index 0000000000..a0da988b29 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.17-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js", + +description: "Array.prototype.some throws TypeError if callbackfn is null", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.some(null); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js new file mode 100644 index 0000000000..c6cf05f683 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.17-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js", + +description: "Array.prototype.some throws TypeError if callbackfn is boolean", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.some(true); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js new file mode 100644 index 0000000000..9f47a5879d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.17-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js", + +description: "Array.prototype.some throws TypeError if callbackfn is number", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.some(5); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js new file mode 100644 index 0000000000..a99982d2bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.17-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js", + +description: "Array.prototype.some throws TypeError if callbackfn is string", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.some("abc"); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js new file mode 100644 index 0000000000..fa1e567445 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.17-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js", + +description: "Array.prototype.some throws TypeError if callbackfn is Object without a Call internal method", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.some(new Object()); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js new file mode 100644 index 0000000000..d12af21f43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.17-4-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js", + + description: "Array.prototype.some - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.some.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js new file mode 100644 index 0000000000..5c400c2f72 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.17-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js", + + description: "Array.prototype.some - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.some.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.js new file mode 100644 index 0000000000..e54e3ef446 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.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: "15.4.4.17-5-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.js", + + description: "Array.prototype.some - thisArg is passed", + + test: function testcase() { + this._15_4_4_17_5_1 = false; + var _15_4_4_17_5_1 = true; + + function callbackfn(val, idx, obj) { + return this._15_4_4_17_5_1; + } + var arr = [1]; + return !arr.some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js new file mode 100644 index 0000000000..f3536b3551 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js", + + description: "Array.prototype.some - Array Object can be used as thisArg", + + test: function testcase() { + + var objArray = []; + + function callbackfn(val, idx, obj) { + return this === objArray; + } + + return [11].some(callbackfn, objArray); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js new file mode 100644 index 0000000000..733d6eb52c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js", + + description: "Array.prototype.some - String object can be used as thisArg", + + test: function testcase() { + + var objString = new String(); + + function callbackfn(val, idx, obj) { + return this === objString; + } + + return [11].some(callbackfn, objString); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js new file mode 100644 index 0000000000..4206929ff8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js", + + description: "Array.prototype.some - Boolean object can be used as thisArg", + + test: function testcase() { + + var objBoolean = new Boolean(); + + function callbackfn(val, idx, obj) { + return this === objBoolean; + } + + return [11].some(callbackfn, objBoolean); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js new file mode 100644 index 0000000000..54f72a4a6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js", + + description: "Array.prototype.some - Number object can be used as thisArg", + + test: function testcase() { + + var objNumber = new Number(); + + function callbackfn(val, idx, obj) { + return this === objNumber; + } + + return [11].some(callbackfn, objNumber); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js new file mode 100644 index 0000000000..670d1f9228 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-5-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js", + + description: "Array.prototype.some - the Math object can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this === Math; + } + + return [11].some(callbackfn, Math); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js new file mode 100644 index 0000000000..67eff16960 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js", + + description: "Array.prototype.some - Date object can be used as thisArg", + + test: function testcase() { + + var objDate = new Date(); + + function callbackfn(val, idx, obj) { + return this === objDate; + } + + return [11].some(callbackfn, objDate); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js new file mode 100644 index 0000000000..8ae4f6a1b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js", + + description: "Array.prototype.some - RegExp object can be used as thisArg", + + test: function testcase() { + + var objRegExp = new RegExp(); + + function callbackfn(val, idx, obj) { + return this === objRegExp; + } + + return [11].some(callbackfn, objRegExp); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js new file mode 100644 index 0000000000..77531d7f10 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-5-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js", + + description: "Array.prototype.some - the JSON object can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this === JSON; + } + + return [11].some(callbackfn, JSON); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js new file mode 100644 index 0000000000..958165fef3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js", + + description: "Array.prototype.some - Error object can be used as thisArg", + + test: function testcase() { + + var objError = new RangeError(); + + function callbackfn(val, idx, obj) { + return this === objError; + } + + return [11].some(callbackfn, objError); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js new file mode 100644 index 0000000000..62655f2da9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-5-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js", + + description: "Array.prototype.some - the Arguments object can be used as thisArg", + + test: function testcase() { + + var arg; + + function callbackfn(val, idx, obj) { + return this === arg; + } + + (function fun() { + arg = arguments; + }(1, 2, 3)); + + return [11].some(callbackfn, arg); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js new file mode 100644 index 0000000000..6f42343a3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js", + +description: "Array.prototype.some - thisArg is Object", + +test: function testcase() { + var res = false; + var o = new Object(); + o.res = true; + function callbackfn(val, idx, obj) + { + return this.res; + } + + var arr = [1]; + if(arr.some(callbackfn, o) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js new file mode 100644 index 0000000000..3b1598c14e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js", + + description: "Array.prototype.some - the global object can be used as thisArg", + + test: function testcase() { + + + function callbackfn(val, idx, obj) { + return this === fnGlobalObject(); + } + + return [11].some(callbackfn, fnGlobalObject()); + }, + + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js new file mode 100644 index 0000000000..9ee4293b61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-5-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js", + + description: "Array.prototype.some - boolean primitive can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === false; + } + + return [11].some(callbackfn, false); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js new file mode 100644 index 0000000000..723362ce5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-5-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js", + + description: "Array.prototype.some - number primitive can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === 101; + } + + return [11].some(callbackfn, 101); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js new file mode 100644 index 0000000000..09a7d76fec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-5-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js", + + description: "Array.prototype.some - string primitive can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === "abc"; + } + + return [11].some(callbackfn, "abc"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js new file mode 100644 index 0000000000..de628d1a7d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js", + + description: "Array.prototype.some - thisArg not passed", + + test: function testcase() { + function innerObj() { + this._15_4_4_17_5_25 = true; + var _15_4_4_17_5_25 = false; + + function callbackfn(val, idx, obj) { + return this._15_4_4_17_5_25; + } + var arr = [1]; + this.retVal = !arr.some(callbackfn); + } + return new innerObj().retVal; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js new file mode 100644 index 0000000000..ea7f6922f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js", + +description: "Array.prototype.some - thisArg is Array", + +test: function testcase() { + var res = false; + var a = new Array(); + a.res = true; + function callbackfn(val, idx, obj) + { + return this.res; + } + + var arr = [1]; + + if(arr.some(callbackfn, a) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js new file mode 100644 index 0000000000..52e8b2da51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js", + +description: "Array.prototype.some - thisArg is object from object template(prototype)", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + foo.prototype.res = true; + var f = new foo(); + var arr = [1]; + + if(arr.some(callbackfn,f) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js new file mode 100644 index 0000000000..fa48855ca5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js", + +description: "Array.prototype.some - thisArg is object from object template", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + var f = new foo(); + f.res = true; + var arr = [1]; + + if(arr.some(callbackfn,f) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js new file mode 100644 index 0000000000..f8829a767c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-5-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js", + +description: "Array.prototype.some - thisArg is function", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + foo.res = true; + var arr = [1]; + + if(arr.some(callbackfn,foo) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js new file mode 100644 index 0000000000..d26a44b6c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-5-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js", + + description: "Array.prototype.some - built-in functions can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this === eval; + } + + return [11].some(callbackfn, eval); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js new file mode 100644 index 0000000000..f581fd5b30 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js", + + description: "Array.prototype.some - Function Object can be used as thisArg", + + test: function testcase() { + + var objFunction = function () { }; + + function callbackfn(val, idx, obj) { + return this === objFunction; + } + + return [11].some(callbackfn, objFunction); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js new file mode 100644 index 0000000000..dd39c2b7f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-7-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js", + +description: "Array.prototype.some considers new elements added to array after it is called", + +test: function testcase() { + var calledForThree = false; + + function callbackfn(val, idx, obj) + { + arr[2] = 3; + if(val !== 3) + calledForThree = true; + + return false; + } + + var arr = [1,2,,4,5]; + + var val = arr.some(callbackfn); + return calledForThree; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js new file mode 100644 index 0000000000..56b76108ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-7-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js", + +description: "Array.prototype.some considers new value of elements in array after it is called", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + arr[4] = 6; + if(val < 6) + return false; + else + return true; + } + + var arr = [1,2,3,4,5]; + + if(arr.some(callbackfn) === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js new file mode 100644 index 0000000000..0755015b4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-7-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js", + +description: "Array.prototype.some doesn't visit deleted elements in array after it is called", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + delete arr[2]; + if(val !== 3) + return false; + else + return true; + } + + var arr = [1,2,3,4,5]; + + if(arr.some(callbackfn) === false) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js new file mode 100644 index 0000000000..45abcc8b08 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js", + +description: "Array.prototype.some doesn't visit deleted elements when Array.length is decreased", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + arr.length = 3; + if(val < 4) + return false; + else + return true; + } + + var arr = [1,2,3,4,6]; + + if(arr.some(callbackfn) === false) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js new file mode 100644 index 0000000000..1ea116ee28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.17-7-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js", + +description: "Array.prototype.some doesn't consider newly added elements in sparse array", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + arr[1000] = 5; + if(val < 5) + return false; + else + return true; + } + + var arr = new Array(10); + arr[1] = 1; + arr[2] = 2; + + if(arr.some(callbackfn) === false) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js new file mode 100644 index 0000000000..65a9571b5b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-7-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js", + +description: "Array.prototype.some visits deleted element in array after the call when same index is also present in prototype", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + delete arr[4]; + if(val < 5) + return false; + else + return true; + } + + + Array.prototype[4] = 5; + var arr = [1,2,3,4,5]; + + var res = arr.some(callbackfn) ; + delete Array.prototype[4]; + if(res === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js new file mode 100644 index 0000000000..2832eef4c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js", + + description: "Array.prototype.some - no observable effects occur if length is 0", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, 1: 12, length: 0 }; + + return !Array.prototype.some.call(obj, callbackfn) && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js new file mode 100644 index 0000000000..71e95b3047 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.17-7-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js", + + description: "Array.prototype.some - modifications to length don't change number of iterations", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val > 10; + } + + var obj = { 0: 9, 2: 12, length: 3 }; + + Object.defineProperty(obj, "1", { + get: function () { + obj.length = 2; + return 8; + }, + configurable: true + }); + + return Array.prototype.some.call(obj, callbackfn) && called === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js new file mode 100644 index 0000000000..fbb2c75450 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-b-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js", + +description: "Array.prototype.some - callbackfn not called for indexes never been assigned values", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + return false; + } + + var arr = new Array(10); + arr[1] = undefined; + arr.some(callbackfn); + if(callCnt === 1) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js new file mode 100644 index 0000000000..814b4593c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-7-b-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js", + + description: "Array.prototype.some - deleting property of prototype causes prototype index property not to be visited on an Array-like Object", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx === 1; + } + var arr = { 2: 2, length: 20 }; + + Object.defineProperty(arr, "0", { + get: function () { + delete Object.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + return !Array.prototype.some.call(arr, callbackfn) && accessed; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js new file mode 100644 index 0000000000..846d3e338d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-7-b-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js", + + description: "Array.prototype.some - deleting property of prototype causes prototype index property not to be visited on an Array", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx === 1; + } + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + return !arr.some(callbackfn) && accessed; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js new file mode 100644 index 0000000000..bacb56335b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.17-7-b-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js", + + description: "Array.prototype.some - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return true; + } else { + return false; + } + } + var arr = { 0: 0, 1: 111, 2: 2, length: 10 }; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + return Array.prototype.some.call(arr, callbackfn); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js new file mode 100644 index 0000000000..89dd9d8b9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.17-7-b-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js", + + description: "Array.prototype.some - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return true; + } else { + return false; + } + } + var arr = [0, 111, 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + return arr.some(callbackfn); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js new file mode 100644 index 0000000000..1a921e98cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.17-7-b-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js", + + description: "Array.prototype.some - decreasing length of array causes index property not to be visited", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx === 3; + } + var arr = [0, 1, 2, "last"]; + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 3; + return 0; + }, + configurable: true + }); + + return !arr.some(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js new file mode 100644 index 0000000000..87271ffdd5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.17-7-b-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js", + + description: "Array.prototype.some - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "prototype") { + return true; + } else { + return false; + } + } + var arr = [0, 1, 2]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + return arr.some(callbackfn); + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js new file mode 100644 index 0000000000..f051c1585a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.17-7-b-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js", + + description: "Array.prototype.some - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "unconfigurable") { + return true; + } else { + return false; + } + } + + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + return arr.some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js new file mode 100644 index 0000000000..1947309d9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.17-7-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js", + + description: "Array.prototype.some - added properties in step 2 are visible here", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "length") { + return true; + } else { + return false; + } + } + + var arr = { }; + + Object.defineProperty(arr, "length", { + get: function () { + arr[2] = "length"; + return 3; + }, + configurable: true + }); + + return Array.prototype.some.call(arr, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js new file mode 100644 index 0000000000..c5eccfeed9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.17-7-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js", + + description: "Array.prototype.some - deleted properties in step 2 are visible here", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx === 2; + } + var arr = { 2: 6.99, 8: 19}; + + Object.defineProperty(arr, "length", { + get: function () { + delete arr[2]; + return 10; + }, + configurable: true + }); + + return !Array.prototype.some.call(arr, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js new file mode 100644 index 0000000000..5ade5305ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.17-7-b-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js", + + description: "Array.prototype.some - properties added into own object after current position are visited on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return true; + } else { + return false; + } + } + + var arr = { length: 2 }; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + return Array.prototype.some.call(arr, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js new file mode 100644 index 0000000000..af53369bac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.17-7-b-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js", + + description: "Array.prototype.some - properties added into own object after current position are visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return true; + } else { + return false; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + return arr.some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js new file mode 100644 index 0000000000..ebb4359f80 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.17-7-b-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js", + + description: "Array.prototype.some - properties can be added to prototype after current position are visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 6.99) { + return true; + } else { + return false; + } + } + var arr = { length: 2 }; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + return Array.prototype.some.call(arr, callbackfn); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js new file mode 100644 index 0000000000..89cc96b401 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.17-7-b-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js", + + description: "Array.prototype.some - properties can be added to prototype after current position are visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 6.99) { + return true; + } else { + return false; + } + } + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + return arr.some(callbackfn); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js new file mode 100644 index 0000000000..4f29741e04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.17-7-b-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js", + + description: "Array.prototype.some - deleting own property causes index property not to be visited on an Array-like object", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx === 1; + } + var arr = { length: 2 }; + + Object.defineProperty(arr, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + return !Array.prototype.some.call(arr, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js new file mode 100644 index 0000000000..b5c8bda9aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.17-7-b-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js", + + description: "Array.prototype.some - deleting own property causes index property not to be visited on an Array", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return idx === 1; + } + var arr = [1, 2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + return !arr.some(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js new file mode 100644 index 0000000000..bb29c4c3a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.17-7-c-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js", + + description: "Array.prototype.some - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var kValue = {}; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val === kValue; + } + return false; + } + + var obj = { 5: kValue, length: 100 }; + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js new file mode 100644 index 0000000000..f0724fe944 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-7-c-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js", + + description: "Array.prototype.some - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 10) { + return val === kValue; + } + return false; + } + + var arr = []; + + Object.defineProperty(arr, "10", { + get: function () { + return kValue; + }, + configurable: true + }); + + return arr.some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js new file mode 100644 index 0000000000..3f9e997841 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.17-7-c-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js", + + description: "Array.prototype.some - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === kValue; + } + return false; + } + + var proto = { 1: 6 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Object.defineProperty(child, "1", { + get: function () { + return kValue; + }, + configurable: true + }); + + return Array.prototype.some.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js new file mode 100644 index 0000000000..15a40f0f2b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.17-7-c-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js", + + description: " Array.prototype.some - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === kValue; + } + return false; + } + + var arr = []; + try { + Array.prototype[1] = 100; + Object.defineProperty(arr, "1", { + get: function () { + return kValue; + }, + configurable: true + }); + + return arr.some(callbackfn); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js new file mode 100644 index 0000000000..b9b5bc47d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js @@ -0,0 +1,72 @@ +/// 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: "15.4.4.17-7-c-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js", + + description: "Array.prototype.some - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === kValue; + } + return false; + } + + var proto = {}; + + Object.defineProperty(proto, "1", { + get: function () { + return 5; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Object.defineProperty(child, "1", { + get: function () { + return kValue; + }, + configurable: true + }); + + + return Array.prototype.some.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js new file mode 100644 index 0000000000..3743124e4f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.17-7-c-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js", + + description: " Array.prototype.some - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === kValue; + } + return false; + } + + var arr = []; + Object.defineProperty(arr, "1", { + get: function () { + return kValue; + }, + configurable: true + }); + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 10; + }, + configurable: true + }); + + return arr.some(callbackfn); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js new file mode 100644 index 0000000000..6a4f30d877 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.17-7-c-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js", + + description: "Array.prototype.some - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === kValue; + } + return false; + } + + var proto = {}; + + Object.defineProperty(proto, "1", { + get: function () { + return kValue; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 20; + + return Array.prototype.some.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js new file mode 100644 index 0000000000..9e37832b57 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.17-7-c-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js", + + description: "Array.prototype.some - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === kValue; + } + return false; + } + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return kValue; + }, + configurable: true + }); + + return [, , ].some(callbackfn); + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js new file mode 100644 index 0000000000..7d96f39a4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.17-7-c-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js", + + description: "Array.prototype.some - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return typeof val === "undefined"; + } + return false; + } + + var obj = { length: 2 }; + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js new file mode 100644 index 0000000000..1a8cb53c65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-7-c-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js", + + description: "Array.prototype.some - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return typeof val === "undefined"; + } + return false; + } + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + return arr.some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js new file mode 100644 index 0000000000..91c34b8e1b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.17-7-c-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js", + + description: "Array.prototype.some - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return typeof val === "undefined"; + } + return false; + } + + var obj = { length: 2 }; + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + try { + Object.prototype[1] = 10; + return Array.prototype.some.call(obj, callbackfn); + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js new file mode 100644 index 0000000000..ba688fc53d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-c-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js", + + description: "Array.prototype.some - element to be retrieved is own data property on an Array", + + test: function testcase() { + + var kValue = {}; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return kValue === val; + } + return false; + } + + return [kValue].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js new file mode 100644 index 0000000000..6963b8a7a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.17-7-c-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js", + + description: "Array.prototype.some - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return typeof val === "undefined"; + } + return false; + } + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + try { + Array.prototype[0] = 100; + return arr.some(callbackfn); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js new file mode 100644 index 0000000000..71909b39e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-7-c-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js", + + description: "Array.prototype.some - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return typeof val === "undefined"; + } + return false; + } + + var proto = {}; + Object.defineProperty(proto, "1", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + + return Array.prototype.some.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js new file mode 100644 index 0000000000..e482ebeb69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.17-7-c-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js", + + description: "Array.prototype.some - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return typeof val === "undefined"; + } + return false; + } + + try { + Object.defineProperty(Array.prototype, "0", { + set: function () { }, + configurable: true + }); + + return [, ].some(callbackfn); + } finally { + delete Array.prototype[0]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js new file mode 100644 index 0000000000..0a380cb30c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-7-c-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js", + + description: "Array.prototype.some - This object is an global object which contains index property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } + return false; + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 11; + fnGlobalObject().length = 1; + return Array.prototype.some.call(fnGlobalObject(), callbackfn); + } finally { + delete fnGlobalObject()[0]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js new file mode 100644 index 0000000000..db31c7a0cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.17-7-c-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js", + + description: "Array.prototype.some - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } + return false; + } + + var func = function (a, b) { + return Array.prototype.some.call(arguments, callbackfn); + }; + + return func(11); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js new file mode 100644 index 0000000000..cb51b3ba21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.17-7-c-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js", + + description: "Array.prototype.some - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + var firstResult = false; + var secondResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + firstResult = (val === 11); + return false; + } else if (idx === 1) { + secondResult = (val === 9); + return false; + } else { + return true; + } + } + + var func = function (a, b) { + return Array.prototype.some.call(arguments, callbackfn); + }; + + return !func(11, 9) && firstResult && secondResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js new file mode 100644 index 0000000000..d638069217 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.17-7-c-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js", + + description: "Array.prototype.some - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var firstResult = false; + var secondResult = false; + var thirdResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + firstResult = (val === 11); + return false; + } else if (idx === 1) { + secondResult = (val === 12); + return false; + } else if (idx === 2) { + thirdResult = (val === 9); + return false; + } else { + return true; + } + } + + var func = function (a, b) { + return Array.prototype.some.call(arguments, callbackfn); + }; + + return !func(11, 12, 9) && firstResult && secondResult && thirdResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js new file mode 100644 index 0000000000..df4a2144cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.17-7-c-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js", + + description: "Array.prototype.some - element changed by getter on previous iterations is observed on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === 12; + } + return false; + } + + var arr = []; + var helpVerifyVar = 11; + + Object.defineProperty(arr, "1", { + get: function () { + return helpVerifyVar; + }, + set: function (args) { + helpVerifyVar = args; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + arr[1] = 12; + return 9; + }, + configurable: true + }); + + return arr.some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js new file mode 100644 index 0000000000..91992f50e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.17-7-c-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js", + + description: "Array.prototype.some - element changed by getter on previous iterations on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === 12; + } + return false; + } + + var obj = { length: 2 }; + var helpVerifyVar = 11; + + Object.defineProperty(obj, "1", { + get: function () { + return helpVerifyVar; + }, + set: function (args) { + helpVerifyVar = args; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + obj[1] = 12; + return 11; + }, + configurable: true + }); + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js new file mode 100644 index 0000000000..d72463568e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-7-c-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js", + + description: "Array.prototype.some - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val === kValue; + } + return false; + } + + var proto = { 5: 100 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[5] = kValue; + child.length = 10; + + return Array.prototype.some.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js new file mode 100644 index 0000000000..2fe49428a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.17-7-c-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js", + + description: "Array.prototype.some - unhandled exceptions happened in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + return true; + } + + var obj = { length: 20 }; + Object.defineProperty(obj, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + Array.prototype.some.call(obj, callbackfn); + return false; + } catch (ex) { + return ex instanceof RangeError && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js new file mode 100644 index 0000000000..70cad27a53 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.17-7-c-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js", + + description: "Array.prototype.some - unhandled exceptions happened in getter terminate iteration on an Array", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + if (idx > 0) { + accessed = true; + } + return true; + } + + var arr = []; + arr[10] = 100; + Object.defineProperty(arr, "0", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + arr.some(callbackfn); + return false; + } catch (ex) { + return ex instanceof RangeError && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.js new file mode 100644 index 0000000000..2be04269a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.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: "15.4.4.17-7-c-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.js", + + description: "Array.prototype.some - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + try { + Array.prototype[0] = 11; + + return [kValue].some(callbackfn); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js new file mode 100644 index 0000000000..ac750aa724 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.17-7-c-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js", + + description: "Array.prototype.some - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var kValue = 1000; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var proto = {}; + + Object.defineProperty(proto, "0", { + get: function () { + return 5; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + Object.defineProperty(child, "0", { + value: kValue, + configurable: true + }); + + return Array.prototype.some.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js new file mode 100644 index 0000000000..884502517f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.17-7-c-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js", + + description: "Array.prototype.some - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var kValue = 1000; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 9; + }, + configurable: true + }); + return [kValue].some(callbackfn); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js new file mode 100644 index 0000000000..40e8645d89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.17-7-c-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js", + + description: "Array.prototype.some - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = 'abc'; + + function callbackfn(val, idx, obj) { + if (5 === idx) { + return kValue === val; + } + return false; + } + + var proto = { 5: kValue }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + return Array.prototype.some.call(child, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.js new file mode 100644 index 0000000000..3996bb39cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.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: "15.4.4.17-7-c-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.js", + + description: "Array.prototype.some - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + var kValue = {}; + + function callbackfn(val, idx, obj) { + if (0 === idx) { + return kValue === val; + } + return false; + } + + try { + Array.prototype[0] = kValue; + + return [, ].some(callbackfn); + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js new file mode 100644 index 0000000000..9366f910e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.17-7-c-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js", + + description: "Array.prototype.some - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 10) { + return val === kValue; + } + return false; + } + + var obj = { length: 20 }; + + Object.defineProperty(obj, "10", { + get: function () { + return kValue; + }, + configurable: true + }); + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js new file mode 100644 index 0000000000..65957a1b34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-7-c-ii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js", + +description: "Array.prototype.some - callbackfn called with correct parameters", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + if(obj[idx] === val) + return false; + else + return true; + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + + if(arr.some(callbackfn) === false) + return true; + + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js new file mode 100644 index 0000000000..843aaede78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js", + + description: "Array.prototype.some - callbackfn is called with 1 formal parameter", + + test: function testcase() { + + function callbackfn(val) { + return val > 10; + } + + return [11, 12].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.js new file mode 100644 index 0000000000..d82adc2871 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.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: "15.4.4.17-7-c-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.js", + + description: "Array.prototype.some - callbackfn is called with 2 formal parameter", + + test: function testcase() { + function callbackfn(val, idx) { + return val > 10 && arguments[2][idx] === val; + } + + return [9, 12].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js new file mode 100644 index 0000000000..ad76e8d91c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-ii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js", + + description: "Array.prototype.some - callbackfn is called with 3 formal parameter", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10 && obj[idx] === val; + } + + return [9, 12].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js new file mode 100644 index 0000000000..1e8d7cc84a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-ii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js", + + description: "Array.prototype.some - callbackfn that uses arguments object to get parameter value", + + test: function testcase() { + + function callbackfn() { + return arguments[2][arguments[1]] === arguments[0]; + } + + return [9, 12].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js new file mode 100644 index 0000000000..f002f413d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-7-c-ii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js", + + description: "Array.prototype.some - 'this' of 'callback' is a Boolean object when 'T' is not an object ('T' is a boolean primitive)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === false; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.some.call(obj, callbackfn, false); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js new file mode 100644 index 0000000000..83c4a40a52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-7-c-ii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js", + + description: "Array.prototype.some - 'this' of 'callbackfn' is a Number object when T is not an object (T is a number primitive)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === 5; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.some.call(obj, callbackfn, 5); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js new file mode 100644 index 0000000000..53e834e702 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-7-c-ii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js", + + description: "Array.prototype.some - 'this' of 'callbackfn' is an String object when T is not an object (T is a string primitive)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === "hello!"; + } + + var obj = { 0: 11, 1: 9, length: 2 }; + + return Array.prototype.some.call(obj, callbackfn, "hello!"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js new file mode 100644 index 0000000000..a292c69124 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-c-ii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js", + + description: "Array.prototype.some - non-indexed properties are not called", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val === 11; + } + + var obj = { 0: 9, 10: 8, non_index_property: 11, length: 20 }; + + return !Array.prototype.some.call(obj, callbackfn) && (2 === called); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js new file mode 100644 index 0000000000..be743fa19b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.17-7-c-ii-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js", + +description: "Array.prototype.some - callbackfn takes 3 arguments", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + if(arguments.length === 3) //verify if callbackfn was called with 3 parameters + return false; + else + return true; + } + + var arr = [0,1,true,null,new Object(),"five"]; + arr[999999] = -6.6; + + if(arr.some(callbackfn) === false) + return true; + + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js new file mode 100644 index 0000000000..3cb6de9d39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-7-c-ii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js", + + description: "Array.prototype.some - callbackfn called with correct parameters (thisArg is correct)", + + test: function testcase() { + + var thisArg = { threshold: 10 }; + + function callbackfn(val, idx, obj) { + return this === thisArg; + } + + var obj = { 0: 11, length: 2 }; + + return Array.prototype.some.call(obj, callbackfn, thisArg); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js new file mode 100644 index 0000000000..6cee3cca28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.17-7-c-ii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js", + + description: "Array.prototype.some - callbackfn called with correct parameters (kValue is correct)", + + test: function testcase() { + + var firstIndex = false; + var secondIndex = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + firstIndex = (val === 11); + return false; + } + if (idx === 1) { + secondIndex = (val === 12); + return false; + } + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + return !Array.prototype.some.call(obj, callbackfn) && firstIndex && secondIndex; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js new file mode 100644 index 0000000000..0f9af37271 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.17-7-c-ii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js", + + description: "Array.prototype.some - callbackfn called with correct parameters (the index k is correct)", + + test: function testcase() { + + var firstIndex = false; + var secondIndex = false; + + function callbackfn(val, idx, obj) { + if (val === 11) { + firstIndex = (idx === 0); + return false; + } + if (val === 12) { + secondIndex = (idx === 1); + return false; + } + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + return !Array.prototype.some.call(obj, callbackfn) && firstIndex && secondIndex; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js new file mode 100644 index 0000000000..4bf3b3cfad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-7-c-ii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js", + + description: "Array.prototype.some - callbackfn called with correct parameters (this object O is correct)", + + test: function testcase() { + + var obj = { 0: 11, 1: 12, length: 2 }; + + function callbackfn(val, idx, o) { + return obj === o; + } + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js new file mode 100644 index 0000000000..c49b819de6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.17-7-c-ii-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js", + +description: "Array.prototype.some immediately returns true if callbackfn returns true", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + if(idx > 5) + return true; + else + return false; + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + + if(arr.some(callbackfn) === true && callCnt === 7) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js new file mode 100644 index 0000000000..1159475493 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-7-c-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js", + + description: "Array.prototype.some - k values are passed in ascending numeric order", + + test: function testcase() { + + var arr = [0, 1, 2, 3, 4, 5]; + var lastIdx = 0; + var called = 0; + + function callbackfn(val, idx, o) { + called++; + if (lastIdx !== idx) { + return true; + } else { + lastIdx++; + return false; + } + } + + return !arr.some(callbackfn) && arr.length === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js new file mode 100644 index 0000000000..eaa7a8e4d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.17-7-c-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js", + + description: "Array.prototype.some - k values are accessed during each iteration and not prior to starting the loop", + + test: function testcase() { + + var kIndex = []; + + //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time. + function callbackfn(val, idx, obj) { + //Each position should be visited one time, which means k is accessed one time during iterations. + if (typeof kIndex[idx] === "undefined") { + //when current position is visited, its previous index should has been visited. + if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") { + return true; + } + kIndex[idx] = 1; + return false; + } else { + return true; + } + } + + return ![11, 12, 13, 14].some(callbackfn, undefined); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js new file mode 100644 index 0000000000..b4ae5325fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-7-c-ii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js", + + description: "Array.prototype.some - arguments to callbackfn are self consistent", + + test: function testcase() { + + var obj = { 0: 11, length: 1 }; + var thisArg = {}; + + function callbackfn() { + return this === thisArg && arguments[0] === 11 && arguments[1] === 0 && arguments[2] === obj; + } + + return Array.prototype.some.call(obj, callbackfn, thisArg); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js new file mode 100644 index 0000000000..8ad280cfef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.17-7-c-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js", + + description: "Array.prototype.some - unhandled exceptions happened in callbackfn terminate iteration", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + if (idx > 0) { + accessed = true; + } + if (idx === 0) { + throw new Error("Exception occurred in callbackfn"); + } + return false; + } + + var obj = { 0: 9, 1: 100, 10: 11, length: 20 }; + + try { + Array.prototype.some.call(obj, callbackfn); + return false; + } catch (ex) { + return ex instanceof Error && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js new file mode 100644 index 0000000000..9b66a3c9fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-c-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js", + + description: "Array.prototype.some - element changed by callbackfn on previous iterations is observed", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + obj[idx + 1] = 11; + } + return val > 10; + } + + var obj = { 0: 9, 1: 8, length: 2 }; + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js new file mode 100644 index 0000000000..16dfac6ad2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js", + + description: "Array.prototype.some - callbackfn is called with 0 formal parameter", + + test: function testcase() { + + function callbackfn() { + return true; + } + + return [11, 12].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js new file mode 100644 index 0000000000..3de8254ab6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-c-iii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js", + + description: "Array.prototype.some - return value of callbackfn is undefined", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return undefined; + } + + var obj = { 0: 11, length: 2 }; + + return !Array.prototype.some.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js new file mode 100644 index 0000000000..97daf0db31 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js", + + description: "Array.prototype.some - return value of callbackfn is a number (value is Infinity)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return Infinity; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js new file mode 100644 index 0000000000..e98e33d26f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js", + + description: "Array.prototype.some - return value of callbackfn is a number (value is -Infinity)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return -Infinity; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js new file mode 100644 index 0000000000..d79ffa5ca9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-7-c-iii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js", + + description: "Array.prototype.some - return value of callbackfn is a number (value is NaN)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return NaN; + } + + return ![11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js new file mode 100644 index 0000000000..8ac04ae67d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-7-c-iii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js", + + description: "Array.prototype.some - return value of callbackfn is an empty string", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return ""; + } + + return ![11].some(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js new file mode 100644 index 0000000000..02721aff08 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js", + + description: "Array.prototype.some - return value of callbackfn is a non-empty string", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return "non-empty string"; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js new file mode 100644 index 0000000000..fb1dc63d34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js", + + description: "Array.prototype.some - return value of callbackfn is Function object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return function () { }; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js new file mode 100644 index 0000000000..d841a1f756 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js", + + description: "Array.prototype.some - return value of callbackfn is an Array object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Array(10); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js new file mode 100644 index 0000000000..26d7bff7a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js", + + description: "Array.prototype.some - return value of callbackfn is a String object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new String(); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js new file mode 100644 index 0000000000..a9a93b0e93 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js", + + description: "Array.prototype.some - return value of callbackfn is a Boolean object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Boolean(); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js new file mode 100644 index 0000000000..412c24168b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js", + + description: "Array.prototype.some - return value of callbackfn is a Number object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Number(); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js new file mode 100644 index 0000000000..8889497bb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-c-iii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js", + + description: "Array.prototype.some - return value of callbackfn is null", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return null; + } + + var obj = { 0: 11, length: 2 }; + + return !Array.prototype.some.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js new file mode 100644 index 0000000000..09b94789df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js", + + description: "Array.prototype.some - return value of callbackfn is the Math object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return Math; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js new file mode 100644 index 0000000000..6c88d18aae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js", + + description: "Array.prototype.some - return value of callbackfn is a Date object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Date(); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js new file mode 100644 index 0000000000..6caf53e9cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js", + + description: "Array.prototype.some - return value of callbackfn is a RegExp object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new RegExp(); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js new file mode 100644 index 0000000000..22c45713b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js", + + description: "Array.prototype.some - return value of callbackfn is the JSON object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return JSON; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js new file mode 100644 index 0000000000..234ebb65b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js", + + description: "Array.prototype.some - return value of callbackfn is an Error object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new EvalError(); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js new file mode 100644 index 0000000000..f524e09ba5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js", + + description: "Array.prototype.some - return value of callbackfn is the Arguments object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return arguments; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js new file mode 100644 index 0000000000..24ec475004 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js", + + description: "Array.prototype.some - return value of callbackfn is the global object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return fnGlobalObject(); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js new file mode 100644 index 0000000000..e6db0368f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.17-7-c-iii-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js", + + description: "Array.prototype.some - true prevents further side effects", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + if (idx > 1) { + result = true; + } + return val > 10; + } + + var obj = { length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + return 8; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + return 11; + }, + configurable: true + }); + + Object.defineProperty(obj, "2", { + get: function () { + result = true; + return 11; + }, + configurable: true + }); + + return Array.prototype.some.call(obj, callbackfn) && !result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js new file mode 100644 index 0000000000..19c818090c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js", + + description: "Array.prototype.some - return value (new Boolean(false)) of callbackfn is treated as true value", + + test: function testcase() { + + function callbackfn() { + return new Boolean(false); + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js new file mode 100644 index 0000000000..e7460223c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-7-c-iii-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js", + + description: "Array.prototype.some - return value of callbackfn is a boolean (value is false)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return false; + } + + var obj = { 0: 11, length: 2 }; + + return !Array.prototype.some.call(obj, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js new file mode 100644 index 0000000000..04642e8ead --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-7-c-iii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js", + + description: "Array.prototype.some - return value of callbackfn is a boolean (value is true)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, length: 2 }; + + return Array.prototype.some.call(obj, callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js new file mode 100644 index 0000000000..8949ce3948 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-7-c-iii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js", + + description: "Array.prototype.some - return value of callbackfn is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return 0; + } + + return ![11].some(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js new file mode 100644 index 0000000000..b96be6f5e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-7-c-iii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js", + + description: "Array.prototype.some - return value of callbackfn is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return +0; + } + + return ![11].some(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js new file mode 100644 index 0000000000..82e822a727 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-7-c-iii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js", + + description: "Array.prototype.some - return value of callbackfn is a number (value is -0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return -0; + } + + return ![11].some(callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js new file mode 100644 index 0000000000..8b5c0f16f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js", + + description: "Array.prototype.some - return value of callbackfn is a number (value is positive number)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return 5; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js new file mode 100644 index 0000000000..9fa167a6bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.17-7-c-iii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js", + + description: "Array.prototype.some - return value of callbackfn is a number (value is negative number)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return -5; + } + + return [11].some(callbackfn); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.some); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js new file mode 100644 index 0000000000..f199c00872 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js @@ -0,0 +1,40 @@ +/// 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: "15.4.4.17-8-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js", + +description: "Array.prototype.some returns false if 'length' is 0 (empty array)", + +test: function testcase() { + function cb(){} + var i = [].some(cb); + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js new file mode 100644 index 0000000000..c40c197abe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.17-8-10", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js", + +description: "Array.prototype.some - subclassed array when length is reduced", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 2; + + function cb(val) + { + if(val > 2) + return true; + else + return false; + } + var i = f.some(cb); + + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js new file mode 100644 index 0000000000..81dabf9e62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.17-8-11", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js", + +description: "Array.prototype.some returns false when all calls to callbackfn return false", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + return false; + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + + if(arr.some(callbackfn) === false && callCnt === 10) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js new file mode 100644 index 0000000000..027018ed9d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.17-8-12", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js", + +description: "Array.prototype.some doesn't mutate the array on which it is called on", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + return true; + } + var arr = [1,2,3,4,5]; + arr.some(callbackfn); + if(arr[0] === 1 && + arr[1] === 2 && + arr[2] === 3 && + arr[3] === 4 && + arr[4] === 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js new file mode 100644 index 0000000000..a803520f49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.17-8-13", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js", + +description: "Array.prototype.some doesn't visit expandos", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + return false; + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + arr["i"] = 10; + arr[true] = 11; + + if(arr.some(callbackfn) === false && callCnt === 10) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js new file mode 100644 index 0000000000..37c1cbc868 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-8-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js", + +description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden to null (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = null; + + function cb(){} + var i = f.some(cb); + + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js new file mode 100644 index 0000000000..3409ce7af7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-8-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js", + +description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden to false (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = false; + + function cb(){} + var i = f.some(cb); + + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js new file mode 100644 index 0000000000..87a0cf5dc3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-8-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js", + +description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + function cb(){} + var i = f.some(cb); + + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js new file mode 100644 index 0000000000..7308a84050 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.17-8-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js", + +description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = '0'; + + function cb(){} + var i = f.some(cb); + + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js new file mode 100644 index 0000000000..c78782487b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.17-8-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js", + +description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { valueOf: function () { return 0;}}; + f.length = o; + + function cb(){} + var i = f.some(cb); + + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js new file mode 100644 index 0000000000..b36c037fbb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.17-8-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js", + +description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + function cb(){} + var i = f.some(cb); + + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js new file mode 100644 index 0000000000..8028a246fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.17-8-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js", + +description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden with []", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + var i = f.some(cb); + + if (i === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.some); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js new file mode 100644 index 0000000000..7d85321cde --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js @@ -0,0 +1,36 @@ +/// 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: "15.4.4.18-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js", + +description: "Array.prototype.forEach must exist as a function", + +test: function testcase() { + var f = Array.prototype.forEach; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js new file mode 100644 index 0000000000..a86e978bb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.18-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js", + +description: "Array.prototype.forEach.length must be 1", + +test: function testcase() { + if (Array.prototype.forEach.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js new file mode 100644 index 0000000000..da762209db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.18-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js", + + description: "Array.prototype.forEach applied to undefined", + + test: function testcase() { + try { + Array.prototype.forEach.call(undefined); // TypeError is thrown if value is undefined + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js new file mode 100644 index 0000000000..9f7eeddf01 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.18-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js", + + description: "Array.prototype.forEach applied to the Math object", + + test: function testcase() { + var result = false; + + function callbackfn(val, idx, obj) { + result = ('[object Math]' === Object.prototype.toString.call(obj)); + } + + try { + Math.length = 1; + Math[0] = 1; + Array.prototype.forEach.call(Math, callbackfn); + return result; + } finally { + delete Math[0]; + delete Math.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js new file mode 100644 index 0000000000..bcae50b8ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js", + + description: "Array.prototype.forEach applied to Date object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof Date; + } + + var obj = new Date(); + obj.length = 1; + obj[0] = 1; + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js new file mode 100644 index 0000000000..374e263920 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js", + + description: "Array.prototype.forEach applied to RegExp object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof RegExp; + } + + var obj = new RegExp(); + obj.length = 1; + obj[0] = 1; + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js new file mode 100644 index 0000000000..f176863257 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.18-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js", + + description: "Array.prototype.forEach applied to the JSON object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = ('[object JSON]' === Object.prototype.toString.call(obj)); + } + + try { + JSON.length = 1; + JSON[0] = 1; + Array.prototype.forEach.call(JSON, callbackfn); + return result; + } finally { + delete JSON.length; + delete JSON[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js new file mode 100644 index 0000000000..66e797a8d0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js", + + description: "Array.prototype.forEach applied to Error object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof Error; + } + + var obj = new Error(); + obj.length = 1; + obj[0] = 1; + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js new file mode 100644 index 0000000000..4f328aa937 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js", + + description: "Array.prototype.forEach applied to the Arguments object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = ('[object Arguments]' === Object.prototype.toString.call(obj)); + } + + var obj = (function () { + return arguments; + }("a", "b")); + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js new file mode 100644 index 0000000000..949f949575 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.18-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js", + + description: "Array.prototype.forEach applied to null", + + test: function testcase() { + try { + Array.prototype.forEach.call(null); // TypeError is thrown if value is null + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.js new file mode 100644 index 0000000000..cb43981257 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.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: "15.4.4.18-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.js", + + description: "Array.prototype.forEach applied to boolean primitive", + + test: function testcase() { + var result = false; + + function callbackfn(val, idx, obj) { + result = obj instanceof Boolean; + } + + try { + Boolean.prototype[0] = true; + Boolean.prototype.length = 1; + + Array.prototype.forEach.call(false, callbackfn); + return result; + + } finally { + delete Boolean.prototype[0]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js new file mode 100644 index 0000000000..3d5180d422 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js", + + description: "Array.prototype.forEach applied to Boolean object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof Boolean; + } + + var obj = new Boolean(true); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js new file mode 100644 index 0000000000..6a971e471f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.18-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js", + + description: "Array.prototype.forEach applied to number primitive", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof Number; + } + + try { + Number.prototype[0] = 1; + Number.prototype.length = 1; + + Array.prototype.forEach.call(2.5, callbackfn); + return result; + } finally { + delete Number.prototype[0]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js new file mode 100644 index 0000000000..87030be96e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.18-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js", + + description: "Array.prototype.forEach applied to Number object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof Number; + } + + var obj = new Number(-128); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + + Array.prototype.forEach.call(obj, callbackfn); + + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js new file mode 100644 index 0000000000..ecd77225f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js", + + description: "Array.prototype.forEach applied to string primitive", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof String; + } + + Array.prototype.forEach.call("abc", callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js new file mode 100644 index 0000000000..181861829a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.18-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js", + + description: "Array.prototype.forEach applied to String object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof String; + } + + var obj = new String("abc"); + Array.prototype.forEach.call(obj, callbackfn); + + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js new file mode 100644 index 0000000000..8b2b139aa6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.18-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js", + + description: "Array.prototype.forEach applied to Function object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = obj instanceof Function; + } + + var obj = function (a, b) { + return a + b; + }; + obj[0] = 11; + obj[1] = 9; + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js new file mode 100644 index 0000000000..ced7938322 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.18-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js", + + description: "Array.prototype.forEach - 'length' is own data property on an Array-like object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: 2 + }; + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js new file mode 100644 index 0000000000..a9c13d110f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.18-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js", + + description: "Array.prototype.forEach applied to Array-like object, 'length' is an inherited accessor property", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + Array.prototype.forEach.call(child, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.js new file mode 100644 index 0000000000..9c27ed50db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.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: "15.4.4.18-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.js", + + description: "Array.prototype.forEach applied to Array-like object, 'length' is an own accessor property without a get function", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { + 0: 11, + 1: 12 + }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js new file mode 100644 index 0000000000..6f0ef53f0a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.18-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js", + + description: "Array.prototype.forEach - 'length' is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + } + + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var obj = { 0: 12, 1: 11 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + return !accessed; + } finally { + delete Object.prototype.length; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js new file mode 100644 index 0000000000..15fab8ffb1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.18-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js", + + description: "Array.prototype.forEach applied to the Array-like object that 'length' is inherited accessor property without a get function", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 11; + child[1] = 12; + + Array.prototype.forEach.call(child, callbackfn); + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js new file mode 100644 index 0000000000..534b83a4dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js", + + description: "Array.prototype.forEach applied to the Array-like object that 'length' property doesn't exist", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 11, 1: 12 }; + + Array.prototype.forEach.call(obj, callbackfn); + return !accessed; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js new file mode 100644 index 0000000000..95493bebe2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.18-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js", + + description: "Array.prototype.forEach - 'length' is property of the global object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 12; + fnGlobalObject()[1] = 11; + fnGlobalObject()[2] = 9; + fnGlobalObject().length = 2; + Array.prototype.forEach.call(fnGlobalObject(), callbackfn); + return result; + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js new file mode 100644 index 0000000000..4c48a8a220 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js", + + description: "Array.prototype.forEach applied to the Arguments object, which implements its own property get method", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var func = function (a, b) { + arguments[2] = 9; + Array.prototype.forEach.call(arguments, callbackfn); + return result; + }; + + return func(12, 11); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js new file mode 100644 index 0000000000..cead0abfb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.18-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js", + + description: "Array.prototype.forEach applied to String object, which implements its own property get method", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 3); + } + + var str = new String("012"); + + Array.prototype.forEach.call(str, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js new file mode 100644 index 0000000000..e20d92e84b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.18-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js", + + description: "Array.prototype.forEach applied to Function object, which implements its own property get method", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var fun = function (a, b) { + return a + b; + }; + fun[0] = 12; + fun[1] = 11; + fun[2] = 9; + + Array.prototype.forEach.call(fun, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js new file mode 100644 index 0000000000..b72e72bbd6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js", + + description: "Array.prototype.forEach - 'length' is own data property on an Array", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + [12, 11].forEach(callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js new file mode 100644 index 0000000000..d747d8a15c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.18-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js", + + description: "Array.prototype.forEach - 'length' is an own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[0] = 12; + child[1] = 11; + child[2] = 9; + + Array.prototype.forEach.call(child, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js new file mode 100644 index 0000000000..8d3fca26ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.18-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js", + + description: "Array.prototype.forEach - 'length' is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + var result = false; + var arrProtoLen; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + [12, 11].forEach(callbackfn); + return result; + } finally { + Array.prototype.length = arrProtoLen; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js new file mode 100644 index 0000000000..eeebeaf88c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.18-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js", + + description: "Array.prototype.forEach applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + Array.prototype.forEach.call(child, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.js new file mode 100644 index 0000000000..b7cb4045ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.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: "15.4.4.18-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.js", + + description: "Array.prototype.forEach applied to Array-like object, 'length' is an inherited data property", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var proto = { length: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + Array.prototype.forEach.call(child, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js new file mode 100644 index 0000000000..24d2bb6919 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.18-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js", + + description: "Array.prototype.forEach applied to Array-like object, 'length' is an own accessor property", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + obj[0] = 12; + obj[1] = 11; + obj[2] = 9; + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js new file mode 100644 index 0000000000..a07cc94c21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.18-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js", + + description: "Array.prototype.forEach applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + Array.prototype.forEach.call(child, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js new file mode 100644 index 0000000000..c8414ed43a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.18-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js", + + description: "Array.prototype.forEach applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property", + + test: function testcase() { + var result = false; + function callbackfn(val, idx, obj) { + result = (obj.length === 2); + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + Array.prototype.forEach.call(child, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js new file mode 100644 index 0000000000..67d07b471b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js", + + description: "Array.prototype.forEach - value of 'length' is undefined", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 0, 1: 1, length: undefined }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js new file mode 100644 index 0000000000..132ed9851c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js", + + description: "Array.prototype.forEach - value of 'length' is a number (value is NaN)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: NaN }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js new file mode 100644 index 0000000000..cd900321eb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js", + + description: "Array.prototype.forEach - 'length' is a string containing a positive number", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { 1: 11, 2: 9, length: "2" }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js new file mode 100644 index 0000000000..3a3e98e820 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js", + + description: "Array.prototype.forEach - 'length' is a string containing a negative number", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { 1: 11, 2: 9, length: "-4294967294" }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js new file mode 100644 index 0000000000..e9e4f5a1a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js", + + description: "Array.prototype.forEach - 'length' is a string containing a decimal number", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + var obj = { 1: 11, 2: 9, length: "2.5" }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js new file mode 100644 index 0000000000..df18db0187 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.18-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js", + + description: "Array.prototype.forEach - 'length' is a string containing +/-Infinity", + + test: function testcase() { + + var accessed1 = false; + var accessed2 = false; + var accessed3 = false; + + function callbackfn1(val, idx, obj) { + accessed1 = true; + } + + function callbackfn2(val, idx, obj) { + accessed2 = true; + } + + function callbackfn3(val, idx, obj) { + accessed3 = true; + } + + var obj1 = { 0: 9, length: "Infinity" }; + var obj2 = { 0: 9, length: "-Infinity" }; + var obj3 = { 0: 9, length: "+Infinity" }; + + Array.prototype.forEach.call(obj1, callbackfn1); + Array.prototype.forEach.call(obj2, callbackfn2); + Array.prototype.forEach.call(obj3, callbackfn3); + + return !accessed1 && !accessed2 && !accessed3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js new file mode 100644 index 0000000000..740e0b29a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js", + + description: "Array.prototype.forEach - 'length' is a string containing an exponential number", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { 1: 11, 2: 9, length: "2E0" }; + + Array.prototype.forEach.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js new file mode 100644 index 0000000000..62b7a196e9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js", + + description: "Array.prototype.forEach - 'length' is a string containing a hex number", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { 1: 11, 2: 9, length: "0x0002" }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js new file mode 100644 index 0000000000..d3c4bf0fc8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js", + + description: "Array.prototype.forEach - 'length' is a string containing a number with leading zeros", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { 1: 11, 2: 9, length: "0002.00" }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js new file mode 100644 index 0000000000..cf38acd179 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js", + + description: "Array.prototype.forEach - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: "asdf!_" }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js new file mode 100644 index 0000000000..6cab500a57 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.18-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js", + + description: "Array.prototype.forEach - value of 'length' is an Object which has an own toString method.", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { + 1: 11, + 2: 9, + length: { + toString: function () { + return '2'; + } + } + }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js new file mode 100644 index 0000000000..3fafa1ef68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js", + + description: "Array.prototype.forEach - value of 'length' is a boolean (value is true)", + + test: function testcase() { + + var testResult = false; + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { 0: 11, 1: 9, length: true }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js new file mode 100644 index 0000000000..b2cacf8745 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.18-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js", + + description: "Array.prototype.forEach - value of 'length' is an Object which has an own valueOf method.", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { + 1: 11, + 2: 9, + length: { + valueOf: function () { + return 2; + } + } + }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js new file mode 100644 index 0000000000..b7b9f23a1d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.18-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js", + + description: "Array.prototype.forEach - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + var testResult = false; + var firstStepOccured = false; + var secondStepOccured = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { + 1: 11, + 2: 9, + length: { + valueOf: function () { + firstStepOccured = true; + return {}; + }, + toString: function () { + secondStepOccured = true; + return '2'; + } + } + }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult && firstStepOccured && secondStepOccured; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js new file mode 100644 index 0000000000..72be71142b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.18-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js", + + description: "Array.prototype.forEach throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var accessed = false; + var firstStepOccured = false; + var secondStepOccured = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { + 1: 11, + 2: 12, + + length: { + valueOf: function () { + firstStepOccured = true; + return {}; + }, + toString: function () { + secondStepOccured = true; + return {}; + } + } + }; + + try { + Array.prototype.forEach.call(obj, callbackfn); + return false; + } catch (ex) { + return ex instanceof TypeError && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.js new file mode 100644 index 0000000000..5375baee36 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.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: "15.4.4.18-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.js", + + description: "Array.prototype.forEach uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + var testResult = false; + var valueOfAccessed = false; + var toStringAccessed = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + child.toString = function () { + toStringAccessed = true; + return '1'; + }; + + var obj = { + 1: 11, + 2: 9, + length: child + }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js new file mode 100644 index 0000000000..9488c1ee09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.18-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js", + + description: "Array.prototype.forEach - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { + 1: 11, + 2: 9, + length: 2.685 + }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js new file mode 100644 index 0000000000..19fd857270 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.18-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js", + + description: "Array.prototype.forEach - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { + 1: 11, + 2: 9, + length: -4294967294.5 + }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js new file mode 100644 index 0000000000..6d429f6de0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.18-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js", + + description: "Array.prototype.forEach - value of 'length' is boundary value (2^32)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { + 0: 12, + length: 4294967296 + }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js new file mode 100644 index 0000000000..66a18f1b76 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.18-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js", + + description: "Array.prototype.forEach - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + testResult = (val > 10); + } + + var obj = { + 0: 11, + 1: 9, + length: 4294967297 + }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js new file mode 100644 index 0000000000..26a49d5624 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js", + + description: "Array.prototype.forEach - value of 'length' is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 1, 1: 1, length: 0 }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js new file mode 100644 index 0000000000..f890f2dfdd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js", + + description: "Array.prototype.forEach - value of 'length' is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 11, length: +0 }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js new file mode 100644 index 0000000000..b211fe083a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js", + + description: "Array.prototype.forEach - value of 'length' is a number (value is -0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 11, length: -0 }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js new file mode 100644 index 0000000000..6369d238a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js", + + description: "Array.prototype.forEach - value of 'length' is a number (value is positive)", + + test: function testcase() { + + var testResult1 = false; + + function callbackfn(val, idx, obj) { + testResult1 = (val > 10); + } + + var obj = { 1: 11, 2: 9, length: 2 }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js new file mode 100644 index 0000000000..e257ccfe91 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js", + + description: "Array.prototype.forEach - value of 'length' is a number (value is negative)", + + test: function testcase() { + + var testResult1 = false; + + function callbackfn(val, idx, obj) { + testResult1 = (val > 10); + } + + var obj = { 1: 11, 2: 9, length: -4294967294 }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js new file mode 100644 index 0000000000..37da486031 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js", + + description: "Array.prototype.forEach - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: Infinity }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js new file mode 100644 index 0000000000..a45bad5544 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js", + + description: "Array.prototype.forEach - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: -Infinity }; + + Array.prototype.forEach.call(obj, callbackfn); + + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js new file mode 100644 index 0000000000..91a21a741d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js", + +description: "Array.prototype.forEach throws TypeError if callbackfn is undefined", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.forEach(); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js new file mode 100644 index 0000000000..5e887341d9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.18-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js", + + description: "Array.prototype.forEach - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.forEach.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js new file mode 100644 index 0000000000..0c26b8a409 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.18-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js", + + description: "Array.prototype.forEach - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.forEach.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js new file mode 100644 index 0000000000..9bcffd9fcf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-4-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js", + + description: "Array.prototype.forEach - 'callbackfn' is a function", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + } + + [11, 9].forEach(callbackfn); + return accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js new file mode 100644 index 0000000000..54a3be28be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.18-4-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js", + + description: "Array.prototype.forEach - calling with no callbackfn is the same as passing undefined for callbackfn", + + test: function testcase() { + + var obj = { 10: 10 }; + var lengthAccessed = false; + var loopAccessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + lengthAccessed = true; + return 20; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + loopAccessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.forEach.call(obj); + return false; + } catch (ex) { + return (ex instanceof TypeError) && lengthAccessed && !loopAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js new file mode 100644 index 0000000000..78b341a83f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-4-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js", + +description: "Array.prototype.forEach throws ReferenceError if callbackfn is unreferenced", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.forEach(foo); + } + catch(e) { + if(e instanceof ReferenceError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js new file mode 100644 index 0000000000..0f8a34a3bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js", + +description: "Array.prototype.forEach throws TypeError if callbackfn is null", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.forEach(null); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js new file mode 100644 index 0000000000..172a81bd80 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js", + +description: "Array.prototype.forEach throws TypeError if callbackfn is boolean", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.forEach(true); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js new file mode 100644 index 0000000000..be57901fc9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js", + +description: "Array.prototype.forEach throws TypeError if callbackfn is number", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.forEach(5); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js new file mode 100644 index 0000000000..a41e505cea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js", + +description: "Array.prototype.forEach throws TypeError if callbackfn is string", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.forEach("abc"); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js new file mode 100644 index 0000000000..cd3f808707 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.18-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js", + +description: "Array.prototype.forEach throws TypeError if callbackfn is Object without Call internal method", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.forEach(new Object()); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js new file mode 100644 index 0000000000..bb3de167d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.18-4-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js", + + description: "Array.prototype.forEach - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.forEach.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js new file mode 100644 index 0000000000..0f2eb4690d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.18-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js", + + description: "Array.prototype.forEach - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.forEach.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js new file mode 100644 index 0000000000..e47dbf3765 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.18-5-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js", + + description: "Array.prototype.forEach - thisArg is passed", + + test: function testcase() { + this._15_4_4_18_5_1 = false; + var _15_4_4_18_5_1 = true; + var result; + function callbackfn(val, idx, obj) { + result = this._15_4_4_18_5_1; + } + var arr = [1]; + arr.forEach(callbackfn) + return !result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js new file mode 100644 index 0000000000..a67c154195 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js", + + description: "Array.prototype.forEach - Array Object can be used as thisArg", + + test: function testcase() { + + var result = false; + var objArray = []; + + function callbackfn(val, idx, obj) { + result = (this === objArray); + } + + [11].forEach(callbackfn, objArray); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js new file mode 100644 index 0000000000..a6234015d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js", + + description: "Array.prototype.forEach - String Object can be used as thisArg", + + test: function testcase() { + + var result = false; + var objString = new String(); + + function callbackfn(val, idx, obj) { + result = (this === objString); + } + + [11].forEach(callbackfn, objString); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js new file mode 100644 index 0000000000..1616e86379 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js", + + description: "Array.prototype.forEach - Boolean Object can be used as thisArg", + + test: function testcase() { + + var result = false; + var objBoolean = new Boolean(); + + function callbackfn(val, idx, obj) { + result = (this === objBoolean); + } + + [11].forEach(callbackfn, objBoolean); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js new file mode 100644 index 0000000000..3e2b805eb0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js", + + description: "Array.prototype.forEach - Number Object can be used as thisArg", + + test: function testcase() { + + var result = false; + var objNumber = new Number(); + + function callbackfn(val, idx, obj) { + result = (this === objNumber); + } + + [11].forEach(callbackfn, objNumber); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js new file mode 100644 index 0000000000..54d2fb69c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-5-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js", + + description: "Array.prototype.forEach - the Math object can be used as thisArg", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = (this === Math); + } + + [11].forEach(callbackfn, Math); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js new file mode 100644 index 0000000000..8c39acd432 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-5-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js", + + description: "Array.prototype.forEach - Date Object can be used as thisArg", + + test: function testcase() { + + var result = false; + var objDate = new Date(); + + function callbackfn(val, idx, obj) { + result = (this === objDate); + } + + [11].forEach(callbackfn, objDate); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js new file mode 100644 index 0000000000..54dc32b8d9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-5-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js", + + description: "Array.prototype.forEach - RegExp Object can be used as thisArg", + + test: function testcase() { + + var result = false; + var objRegExp = new RegExp(); + + function callbackfn(val, idx, obj) { + result = (this === objRegExp); + } + + [11].forEach(callbackfn, objRegExp); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js new file mode 100644 index 0000000000..f9aa7ae701 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-5-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js", + + description: "Array.prototype.forEach - the JSON object can be used as thisArg", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = (this === JSON); + } + + [11].forEach(callbackfn, JSON); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js new file mode 100644 index 0000000000..1e9c6b200a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-5-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js", + + description: "Array.prototype.forEach - Error Object can be used as thisArg", + + test: function testcase() { + + var result = false; + var objError = new RangeError(); + + function callbackfn(val, idx, obj) { + result = (this === objError); + } + + [11].forEach(callbackfn, objError); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js new file mode 100644 index 0000000000..c7695c296a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.18-5-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js", + + description: "Array.prototype.forEach - the Arguments object can be used as thisArg", + + test: function testcase() { + + var result = false; + var arg; + + function callbackfn(val, idx, obj) { + result = (this === arg); + } + + (function fun() { + arg = arguments; + }(1, 2, 3)); + + [11].forEach(callbackfn, arg); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js new file mode 100644 index 0000000000..9370adca9e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js", + +description: "Array.prototype.forEach - thisArg is Object", + +test: function testcase() { + var res = false; + var o = new Object(); + o.res = true; + var result; + function callbackfn(val, idx, obj) + { + result = this.res; + } + + var arr = [1]; + arr.forEach(callbackfn,o) + if( result === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js new file mode 100644 index 0000000000..3372188671 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-5-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js", + + description: "Array.prototype.forEach - the global object can be used as thisArg", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = (this === fnGlobalObject()); + } + + [11].forEach(callbackfn, fnGlobalObject()); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js new file mode 100644 index 0000000000..9f6a57e21d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.18-5-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js", + + description: "Array.prototype.forEach - boolean primitive can be used as thisArg", + + test: function testcase() { + + var result = false; + + function callbackfn(val, idx, obj) { + result = (this.valueOf() === false); + } + + [11].forEach(callbackfn, false); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js new file mode 100644 index 0000000000..3e7c8e612f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-5-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js", + + description: "Array.prototype.forEach - number primitive can be used as thisArg", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = (this.valueOf() === 101); + } + + [11].forEach(callbackfn, 101); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js new file mode 100644 index 0000000000..7c361fdd98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-5-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js", + + description: "Array.prototype.forEach - string primitive can be used as thisArg", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = (this.valueOf() === "abc"); + } + + [11].forEach(callbackfn, "abc"); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js new file mode 100644 index 0000000000..1943eeb28b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.18-5-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js", + + description: "Array.prototype.forEach - thisArg not passed", + + test: function testcase() { + function innerObj() { + this._15_4_4_18_5_25 = true; + var _15_4_4_18_5_25 = false; + var result; + function callbackfn(val, idx, obj) { + result = this._15_4_4_18_5_25; + } + var arr = [1]; + arr.forEach(callbackfn) + this.retVal = !result; + } + return new innerObj().retVal; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js new file mode 100644 index 0000000000..0443f4f7ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js", + +description: "Array.prototype.forEach - thisArg is Array", + +test: function testcase() { + var res = false; + var a = new Array(); + a.res = true; + var result; + function callbackfn(val, idx, obj) + { + result = this.res; + } + + var arr = [1]; + arr.forEach(callbackfn,a) + if( result === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js new file mode 100644 index 0000000000..fda86434d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js", + +description: "Array.prototype.forEach - thisArg is object from object template(prototype)", + +test: function testcase() { + var res = false; + var result; + function callbackfn(val, idx, obj) + { + result = this.res; + } + + function foo(){} + foo.prototype.res = true; + var f = new foo(); + var arr = [1]; + arr.forEach(callbackfn,f) + if( result === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js new file mode 100644 index 0000000000..72ed105a2c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.18-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js", + +description: "Array.prototype.forEach - thisArg is object from object template", + +test: function testcase() { + var res = false; + var result; + function callbackfn(val, idx, obj) + { + result = this.res; + } + + function foo(){} + var f = new foo(); + f.res = true; + + var arr = [1]; + arr.forEach(callbackfn,f) + if( result === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js new file mode 100644 index 0000000000..7d602289df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-5-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js", + +description: "Array.prototype.forEach - thisArg is function", + +test: function testcase() { + var res = false; + var result; + function callbackfn(val, idx, obj) + { + result = this.res; + } + + function foo(){} + foo.res = true; + + var arr = [1]; + arr.forEach(callbackfn,foo) + if( result === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js new file mode 100644 index 0000000000..4fb0457e7e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.18-5-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js", + + description: "Array.prototype.forEach - built-in functions can be used as thisArg", + + test: function testcase() { + + var result = false; + + function callbackfn(val, idx, obj) { + result = (this === eval); + } + + [11].forEach(callbackfn, eval); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js new file mode 100644 index 0000000000..6745ca9b83 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js", + + description: "Array.prototype.forEach - Function Object can be used as thisArg", + + test: function testcase() { + + var result = false; + var objString = function () { }; + + function callbackfn(val, idx, obj) { + result = (this === objString); + } + + [11].forEach(callbackfn, objString); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js new file mode 100644 index 0000000000..04204725cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-7-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js", + +description: "Array.prototype.forEach doesn't consider new elements added to array after the call", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + arr[2] = 3; + arr[5] = 6; + } + + var arr = [1,2,,4,5]; + arr.forEach(callbackfn); + if( callCnt === 5) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js new file mode 100644 index 0000000000..f5133e5179 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-7-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js", + +description: "Array.prototype.forEach doesn't visit deleted elements in array after the call", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + if(callCnt == 0) + delete arr[3]; + callCnt++; + } + + var arr = [1,2,3,4,5]; + arr.forEach(callbackfn) + if( callCnt === 4) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js new file mode 100644 index 0000000000..f974a2e5ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-7-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js", + +description: "Array.prototype.forEach doesn't visit deleted elements when Array.length is decreased", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + arr.length=3; + callCnt++; + } + + var arr = [1,2,3,4,5]; + arr.forEach(callbackfn); + if( callCnt === 3) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js new file mode 100644 index 0000000000..5c862c934b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-7-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js", + +description: "Array.prototype.forEach doesn't consider newly added elements in sparse array", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + arr[1000] = 3; + callCnt++; + } + + var arr = new Array(10); + arr[1] = 1; + arr[2] = 2; + arr.forEach(callbackfn); + if( callCnt === 2) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js new file mode 100644 index 0000000000..d9d964d65f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.18-7-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js", + +description: "Array.prototype.forEach visits deleted element in array after the call when same index is also present in prototype", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + delete arr[4]; + callCnt++; + } + + Array.prototype[4] = 5; + + var arr = [1,2,3,4,5]; + arr.forEach(callbackfn) + delete Array.prototype[4]; + if( callCnt === 5) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js new file mode 100644 index 0000000000..0948b2a7b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.18-7-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js", + + description: "Array.prototype.forEach - considers new value of elements in array after the call", + + test: function testcase() { + + var result = false; + var arr = [1, 2, 3, 4, 5]; + + function callbackfn(val, Idx, obj) { + arr[4] = 6; + if (val >= 6) { + result = true; + } + } + + arr.forEach(callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js new file mode 100644 index 0000000000..6280954a9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-7-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js", + + description: "Array.prototype.forEach - no observable effects occur if len is 0", + + test: function testcase() { + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + } + + var obj = { 0: 11, 1: 12, length: 0 }; + + Array.prototype.forEach.call(obj, callbackfn); + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js new file mode 100644 index 0000000000..5473ced9d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.18-7-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js", + + description: "Array.prototype.forEach - modifications to length don't change number of iterations", + + test: function testcase() { + + var called = 0; + function callbackfn(val, idx, obj) { + called++; + } + + var obj = { 1: 12, 2: 9, length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + obj.length = 3; + return 11; + }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + return 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js new file mode 100644 index 0000000000..6454d4ef58 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.18-7-b-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js", + +description: "Array.prototype.forEach - callbackfn not called for indexes never been assigned values", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + } + + var arr = new Array(10); + arr[1] = undefined; + arr.forEach(callbackfn); + if( callCnt === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js new file mode 100644 index 0000000000..063b7154a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.18-7-b-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js", + + description: "Array.prototype.forEach - deleting property of prototype causes prototype index property not to be visited on an Array-like Object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(val, idx, obj) { + accessed = true; + if (idx === 3) { + testResult = false; + } + } + + var obj = { 2: 2, length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete Object.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + Array.prototype.forEach.call(obj, callbackfn); + return testResult && accessed; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js new file mode 100644 index 0000000000..3abcd809d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.18-7-b-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js", + + description: "Array.prototype.forEach - deleting property of prototype causes prototype index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [0, , ]; + + Object.defineProperty(arr, "0", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.forEach(callbackfn); + return testResult && accessed; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js new file mode 100644 index 0000000000..b1f671520a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.18-7-b-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js", + + description: "Array.prototype.forEach - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + + var obj = { 0: 0, 1: 111, length: 10 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + Array.prototype.forEach.call(obj, callbackfn); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js new file mode 100644 index 0000000000..56a1213e34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.18-7-b-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js", + + description: "Array.prototype.forEach - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + var arr = [0, 111]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.forEach(callbackfn); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js new file mode 100644 index 0000000000..d302ea7881 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.18-7-b-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js", + + description: "Array.prototype.forEach - decreasing length of array causes index property not to be visited", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(val, idx, obj) { + accessed = true; + if (idx === 3) { + testResult = false; + } + } + + var arr = [0, 1, 2, "last"]; + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 3; + return 0; + }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js new file mode 100644 index 0000000000..c235788bb0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.18-7-b-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js", + + description: "Array.prototype.forEach - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "prototype") { + testResult = true; + } + } + var arr = [0, 1, 2]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js new file mode 100644 index 0000000000..b09a63fec7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.18-7-b-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js", + + description: "Array.prototype.forEach - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "unconfigurable") { + testResult = true; + } + } + + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js new file mode 100644 index 0000000000..d59057a301 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.18-7-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js", + + description: "Array.prototype.forEach - added properties in step 2 are visible here", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "length") { + testResult = true; + } + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + obj[2] = "length"; + return 3; + }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js new file mode 100644 index 0000000000..a86a8b0cc9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.18-7-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js", + + description: "Array.prototype.forEach - deleted properties in step 2 are visible here", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(val, idx, obj) { + accessed = true; + if (idx === 8) { + testResult = false; + } + } + var obj = { 2: 6.99, 8: 19 }; + + Object.defineProperty(obj, "length", { + get: function () { + delete obj[8]; + return 10; + }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js new file mode 100644 index 0000000000..77fcbf653d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.18-7-b-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js", + + description: "Array.prototype.forEach - properties added into own object after current position are visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + Object.defineProperty(obj, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js new file mode 100644 index 0000000000..fd0618d0c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.18-7-b-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js", + + description: "Array.prototype.forEach - properties added into own object after current position are visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + arr.forEach(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js new file mode 100644 index 0000000000..fbf76bd7c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.18-7-b-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js", + + description: "Array.prototype.forEach - properties can be added to prototype after current position are visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 6.99) { + testResult = true; + } + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + Array.prototype.forEach.call(obj, callbackfn); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js new file mode 100644 index 0000000000..5fb748f161 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.18-7-b-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js", + + description: "Array.prototype.forEach - properties can be added to prototype after current position are visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 6.99) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + arr.forEach(callbackfn); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js new file mode 100644 index 0000000000..a0a359cefe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.18-7-b-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js", + + description: "Array.prototype.forEach - deleting own property causes index property not to be visited on an Array-like object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js new file mode 100644 index 0000000000..01d8c373ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.18-7-b-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js", + + description: "Array.prototype.forEach - deleting own property causes index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [1, 2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + arr.forEach(callbackfn); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js new file mode 100644 index 0000000000..86dee575ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.18-7-c-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js", + + description: "Array.prototype.forEach - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var kValue = { }; + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + testResult = (val === kValue); + } + } + + var obj = { 5: kValue, length: 100 }; + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js new file mode 100644 index 0000000000..18f32a8998 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.18-7-c-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js", + + description: "Array.prototype.forEach - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 2) { + testResult = (val === 12); + } + } + + var arr = []; + + Object.defineProperty(arr, "2", { + get: function () { + return 12; + }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js new file mode 100644 index 0000000000..b24106f512 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.18-7-c-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js", + + description: "Array.prototype.forEach - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + var proto = { 0: 5 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Object.defineProperty(child, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + Array.prototype.forEach.call(child, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js new file mode 100644 index 0000000000..b92cbc9905 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.18-7-c-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js", + + description: " Array.prototype.forEach - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 111); + } + } + + var arr = []; + try { + Array.prototype[0] = 10; + + Object.defineProperty(arr, "0", { + get: function () { + return 111; + }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.js new file mode 100644 index 0000000000..242a131cd9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.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: "15.4.4.18-7-c-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.js", + + description: "Array.prototype.forEach - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + testResult = (val === 12); + } + } + + var proto = {}; + + Object.defineProperty(proto, "1", { + get: function () { + return 6; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Object.defineProperty(child, "1", { + get: function () { + return 12; + }, + configurable: true + }); + + + Array.prototype.forEach.call(child, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js new file mode 100644 index 0000000000..1b9c747e0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.18-7-c-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js", + + description: " Array.prototype.forEach - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + var arr = []; + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 5; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js new file mode 100644 index 0000000000..ca346a0b54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.18-7-c-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js", + + description: "Array.prototype.forEach - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + testResult = (val === 11); + } + } + + var proto = {}; + + Object.defineProperty(proto, "1", { + get: function () { + return 11; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 20; + + Array.prototype.forEach.call(child, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js new file mode 100644 index 0000000000..9733824b11 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.18-7-c-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js", + + description: "Array.prototype.forEach - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + [, , , ].forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js new file mode 100644 index 0000000000..719940e7e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.18-7-c-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js", + + description: "Array.prototype.forEach - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + testResult = (typeof val === "undefined"); + } + } + + var obj = { length: 2 }; + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js new file mode 100644 index 0000000000..bd36b73031 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.18-7-c-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js", + + description: "Array.prototype.forEach - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (typeof val === "undefined"); + } + } + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js new file mode 100644 index 0000000000..7db65040db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.18-7-c-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js", + + description: "Array.prototype.forEach - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + testResult = (typeof val === "undefined"); + } + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + try { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 10; + }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js new file mode 100644 index 0000000000..6dc9ed28c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-7-c-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js", + + description: "Array.prototype.forEach - element to be retrieved is own data property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + [11].forEach(callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js new file mode 100644 index 0000000000..3a5faae3f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.18-7-c-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js", + + description: "Array.prototype.forEach - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (typeof val === "undefined"); + } + } + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 100; + }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js new file mode 100644 index 0000000000..fcd10f1b98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.18-7-c-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js", + + description: "Array.prototype.forEach - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + testResult = (typeof val === "undefined"); + } + } + + var proto = {}; + Object.defineProperty(proto, "1", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + + Array.prototype.forEach.call(child, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js new file mode 100644 index 0000000000..93c7acfc19 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.18-7-c-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js", + + description: "Array.prototype.forEach - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (typeof val === "undefined"); + } + } + + try { + Object.defineProperty(Array.prototype, "0", { + set: function () { }, + configurable: true + }); + + [, 1].forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[0]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js new file mode 100644 index 0000000000..00b4767920 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.18-7-c-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js", + + description: "Array.prototype.forEach - This object is an global object which contains index property", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 11; + fnGlobalObject().length = 1; + + Array.prototype.forEach.call(fnGlobalObject(), callbackfn); + + return testResult; + } finally { + delete fnGlobalObject()[0]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js new file mode 100644 index 0000000000..3ec4890c28 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.18-7-c-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js", + + description: "Array.prototype.forEach - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + var func = function (a, b) { + return Array.prototype.forEach.call(arguments, callbackfn); + }; + + func(11); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js new file mode 100644 index 0000000000..23a7e63f24 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.18-7-c-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js", + + description: "Array.prototype.forEach - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + var called = 0; + var testResult = false; + + function callbackfn(val, idx, obj) { + called++; + if (called !== 1 && !testResult) { + return; + } + if (idx === 0) { + testResult = (val === 11); + } else if (idx === 1) { + testResult = (val === 9); + } else { + testResult = false; + } + } + + var func = function (a, b) { + Array.prototype.forEach.call(arguments, callbackfn); + }; + + func(11, 9); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js new file mode 100644 index 0000000000..85280bf974 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.18-7-c-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js", + + description: "Array.prototype.forEach - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var called = 0; + var testResult = false; + + function callbackfn(val, idx, obj) { + called++; + if (called !== 1 && !testResult) { + return; + } + if (idx === 0) { + testResult = (val === 11); + } else if (idx === 1) { + testResult = (val === 12); + } else if (idx === 2) { + testResult = (val === 9); + } else { + testResult = false; + } + } + + var func = function (a, b) { + return Array.prototype.forEach.call(arguments, callbackfn); + }; + + func(11, 12, 9); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js new file mode 100644 index 0000000000..2d3edce590 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.18-7-c-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js", + + description: "Array.prototype.forEach - element changed by getter on previous iterations is observed on an Array", + + test: function testcase() { + + var preIterVisible = false; + var arr = []; + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + testResult = (val === 9); + } + } + + Object.defineProperty(arr, "0", { + get: function () { + preIterVisible = true; + return 11; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return 9; + } else { + return 13; + } + }, + configurable: true + }); + + arr.forEach(callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js new file mode 100644 index 0000000000..58b3e38a61 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.18-7-c-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js", + + description: "Array.prototype.forEach - element changed by getter on previous iterations is observed on an Array-like object", + + test: function testcase() { + + var preIterVisible = false; + var obj = { length: 2 }; + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + testResult = (val === 9); + } + } + + Object.defineProperty(obj, "0", { + get: function () { + preIterVisible = true; + return 11; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return 9; + } else { + return 13; + } + }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js new file mode 100644 index 0000000000..eb9b8e407b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.18-7-c-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js", + + description: "Array.prototype.forEach - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var kValue = "abc"; + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + testResult = (val === kValue); + } + } + + var proto = { 5: 100 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[5] = kValue; + child.length = 10; + + Array.prototype.forEach.call(child, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js new file mode 100644 index 0000000000..c2cf055fcf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.18-7-c-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js", + + description: "Array.prototype.forEach - unnhandled exceptions happened in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var obj = { 0: 11, 5: 10, 10: 8, length: 20 }; + var accessed = false; + + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + } + + Object.defineProperty(obj, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + Object.defineProperty(obj, "2", { + get: function () { + accessed = true; + return 100; + }, + configurable: true + }); + + try { + Array.prototype.forEach.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js new file mode 100644 index 0000000000..e1ef6eb4bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js @@ -0,0 +1,72 @@ +/// 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: "15.4.4.18-7-c-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js", + + description: "Array.prototype.forEach - unnhandled exceptions happened in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + } + + var arr = []; + arr[5] = 10; + arr[10] = 100; + + Object.defineProperty(arr, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + Object.defineProperty(arr, "2", { + get: function () { + accessed = true; + return 100; + }, + configurable: true + }); + + try { + arr.forEach(callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js new file mode 100644 index 0000000000..7fa1b878ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.18-7-c-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js", + + description: "Array.prototype.forEach - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 12); + } + } + + try { + Array.prototype[0] = 11; + + [12].forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js new file mode 100644 index 0000000000..ed5ca09593 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.18-7-c-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js", + + description: "Array.prototype.forEach - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + var proto = {}; + + Object.defineProperty(proto, "0", { + get: function () { + return 5; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + Object.defineProperty(child, "0", { + value: 11, + configurable: true + }); + + Array.prototype.forEach.call(child, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js new file mode 100644 index 0000000000..1b479366d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.18-7-c-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js", + + description: "Array.prototype.forEach - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 9; + }, + configurable: true + }); + + [11].forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js new file mode 100644 index 0000000000..e39e85457f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.18-7-c-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js", + + description: "Array.prototype.forEach - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = 'abc'; + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + testResult = (val === kValue); + } + } + + var proto = { 5: kValue }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Array.prototype.forEach.call(child, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js new file mode 100644 index 0000000000..4cec36a841 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.18-7-c-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js", + + description: "Array.prototype.forEach - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 1) { + testResult = (val === 13); + } + } + + try { + Array.prototype[1] = 13; + + [, , , ].forEach(callbackfn); + + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js new file mode 100644 index 0000000000..1d24e329ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.18-7-c-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js", + + description: "Array.prototype.forEach - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + testResult = (val === 11); + } + } + + var obj = { 10: 10, length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + Array.prototype.forEach.call(obj, callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js new file mode 100644 index 0000000000..8ed151536b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-7-c-ii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js", + +description: "Array.prototype.forEach - callbackfn called with correct parameters", + +test: function testcase() { + + var bPar = true; + var bCalled = false; + function callbackfn(val, idx, obj) + { + bCalled = true; + if(obj[idx] !== val) + bPar = false; + } + + var arr = [0,1,true,null,new Object(),"five"]; + arr[999999] = -6.6; + arr.forEach(callbackfn); + if(bCalled === true && bPar === true) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js new file mode 100644 index 0000000000..b4d31dda72 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-7-c-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js", + + description: "Array.prototype.forEach - callbackfn is called with 1 formal parameter", + + test: function testcase() { + + var result = false; + function callbackfn(val) { + result = (val > 10); + } + + [11].forEach(callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js new file mode 100644 index 0000000000..1ee573ef70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-7-c-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js", + + description: "Array.prototype.forEach - callbackfn is called with 2 formal parameter", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx) { + result = (val > 10 && arguments[2][idx] === val); + } + + [11].forEach(callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js new file mode 100644 index 0000000000..3db492cce1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-7-c-ii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js", + + description: "Array.prototype.forEach - callbackfn is called with 3 formal parameter", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = (val > 10 && obj[idx] === val); + } + + [11].forEach(callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js new file mode 100644 index 0000000000..b5b7e31659 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-7-c-ii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js", + + description: "Array.prototype.forEach - callbackfn that uses arguments", + + test: function testcase() { + + var result = false; + function callbackfn() { + result = (arguments[2][arguments[1]] === arguments[0]); + } + + [11].forEach(callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js new file mode 100644 index 0000000000..c8b922798f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-7-c-ii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js", + + description: "Array.prototype.forEach - 'this' of 'callbackfn' is a Boolean object when T is not an object (T is a boolean)", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = (this.valueOf() !== false); + } + + var obj = { 0: 11, length: 2 }; + + Array.prototype.forEach.call(obj, callbackfn, false); + return !result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js new file mode 100644 index 0000000000..bcdbba38c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-7-c-ii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js", + + description: "Array.prototype.forEach - 'this' of 'callbackfn' is a Number object when T is not an object (T is a number)", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, o) { + result = (5 === this.valueOf()); + } + + var obj = { 0: 11, length: 2 }; + + Array.prototype.forEach.call(obj, callbackfn, 5); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js new file mode 100644 index 0000000000..e345f3a038 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-7-c-ii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js", + + description: "Array.prototype.forEach - 'this' of 'callbackfn' is an String object when T is not an object (T is a string)", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = ('hello' === this.valueOf()); + } + + var obj = { 0: 11, length: 2 }; + + Array.prototype.forEach.call(obj, callbackfn, "hello"); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js new file mode 100644 index 0000000000..e90ca76fac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.18-7-c-ii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js", + + description: "Array.prototype.forEach - non-indexed properties are not called", + + test: function testcase() { + + var accessed = false; + var result = true; + function callbackfn(val, idx, obj) { + accessed = true; + if (val === 8) { + result = false; + } + } + + var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 }; + + Array.prototype.forEach.call(obj, callbackfn); + return result && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js new file mode 100644 index 0000000000..73e01d832d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-7-c-ii-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js", + +description: "Array.prototype.forEach - callbackfn takes 3 arguments", + +test: function testcase() { + + var parCnt = 3; + var bCalled = false + function callbackfn(val, idx, obj) + { + bCalled = true; + if(arguments.length !== 3) + parCnt = arguments.length; //verify if callbackfn was called with 3 parameters + } + + var arr = [0,1,2,3,4,5,6,7,8,9]; + arr.forEach(callbackfn); + if(bCalled === true && parCnt === 3) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js new file mode 100644 index 0000000000..6f6fb25b58 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.18-7-c-ii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js", + + description: "Array.prototype.forEach - callbackfn called with correct parameters (thisArg is correct)", + + test: function testcase() { + + var result = false; + function callbackfn(val, idx, obj) { + result = (10 === this.threshold); + } + + var thisArg = { threshold: 10 }; + + var obj = { 0: 11, length: 1 }; + + Array.prototype.forEach.call(obj, callbackfn, thisArg); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js new file mode 100644 index 0000000000..69c8ba4fdf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.18-7-c-ii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js", + + description: "Array.prototype.forEach - callbackfn called with correct parameters (kValue is correct)", + + test: function testcase() { + + var resultOne = false; + var resultTwo = false; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + resultOne = (val === 11); + } + + if (idx === 1) { + resultTwo = (val === 12); + } + + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + Array.prototype.forEach.call(obj, callbackfn); + return resultOne && resultTwo; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js new file mode 100644 index 0000000000..1952f34a98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.18-7-c-ii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js", + + description: "Array.prototype.forEach - callbackfn called with correct parameters (the index k is correct)", + + test: function testcase() { + + var resultOne = false; + var resultTwo = false; + + function callbackfn(val, idx, obj) { + if (val === 11) { + resultOne = (idx === 0); + } + + if (val === 12) { + resultTwo = (idx === 1); + } + + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + Array.prototype.forEach.call(obj, callbackfn); + return resultOne && resultTwo; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js new file mode 100644 index 0000000000..8d9d47989c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-7-c-ii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js", + + description: "Array.prototype.forEach - callbackfn called with correct parameters (this object O is correct)", + + test: function testcase() { + + var result = false; + var obj = { 0: 11, length: 2 }; + + function callbackfn(val, idx, o) { + result = (obj === o); + } + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js new file mode 100644 index 0000000000..a833c8cce4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.18-7-c-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js", + + description: "Array.prototype.forEach - k values are passed in ascending numeric order", + + test: function testcase() { + + var arr = [0, 1, 2, 3, 4, 5]; + var lastIdx = 0; + var called = 0; + var result = true; + function callbackfn(val, idx, o) { + called++; + if (lastIdx !== idx) { + result = false; + } else { + lastIdx++; + } + } + + arr.forEach(callbackfn); + return result && arr.length === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js new file mode 100644 index 0000000000..5e2261de6e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.18-7-c-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js", + + description: "Array.prototype.forEach - k values are accessed during each iteration and not prior to starting the loop on an Array", + + test: function testcase() { + + var result = true; + var kIndex = []; + + //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time. + function callbackfn(val, idx, obj) { + //Each position should be visited one time, which means k is accessed one time during iterations. + if (typeof kIndex[idx] === "undefined") { + //when current position is visited, its previous index should has been visited. + if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") { + result = false; + } + kIndex[idx] = 1; + } else { + result = false; + } + } + + [11, 12, 13, 14].forEach(callbackfn, undefined); + + return result; + }, + + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js new file mode 100644 index 0000000000..a66c187db6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.18-7-c-ii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js", + + description: "Array.prototype.forEach - arguments to callbackfn are self consistent", + + test: function testcase() { + + var result = false; + var obj = { 0: 11, length: 1 }; + var thisArg = {}; + + function callbackfn() { + result = (this === thisArg && + arguments[0] === 11 && + arguments[1] === 0 && + arguments[2] === obj); + } + + Array.prototype.forEach.call(obj, callbackfn, thisArg); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js new file mode 100644 index 0000000000..a9a68c2231 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.18-7-c-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js", + + description: "Array.prototype.forEach - unhandled exceptions happened in callbackfn terminate iteration", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + if (idx > 0) { + accessed = true; + } + if (idx === 0) { + throw new Error("Exception occurred in callbackfn"); + } + } + + var obj = { 0: 11, 4: 10, 10: 8, length: 20 }; + + try { + Array.prototype.forEach.call(obj, callbackfn); + return false; + } catch (ex) { + return ex instanceof Error && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js new file mode 100644 index 0000000000..0f09ddde35 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.18-7-c-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js", + + description: "Array.prototype.forEach - element changed by callbackfn on previous iterations is observed", + + test: function testcase() { + + var result = false; + var obj = { 0: 11, 1: 12, length: 2 }; + + function callbackfn(val, idx, o) { + if (idx === 0) { + obj[idx + 1] = 8; + } + + if (idx === 1) { + result = (val === 8); + } + } + + Array.prototype.forEach.call(obj, callbackfn); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js new file mode 100644 index 0000000000..04263be8d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-7-c-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js", + + description: "Array.prototype.forEach - callbackfn is called with 0 formal parameter", + + test: function testcase() { + + var called = 0; + function callbackfn() { + called++; + } + + [11, 12].forEach(callbackfn); + return 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.js new file mode 100644 index 0000000000..6cbb12b8a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.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: "15.4.4.18-8-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (empty array)", + +test: function testcase() { + var callCnt = 0; + function cb(){callCnt++} + var i = [].forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js new file mode 100644 index 0000000000..535f2a871e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-8-10", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js", + +description: "Array.prototype.forEach - subclassed array when length is reduced", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 1; + + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js new file mode 100644 index 0000000000..72cd21e036 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.18-8-11", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js", + +description: "Array.prototype.forEach doesn't mutate the array on which it is called on", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + return true; + } + var arr = [1,2,3,4,5]; + arr.forEach(callbackfn); + if(arr[0] === 1 && + arr[1] === 2 && + arr[2] === 3 && + arr[3] === 4 && + arr[4] === 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js new file mode 100644 index 0000000000..2bcda8176c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.18-8-12", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js", + +description: "Array.prototype.forEach doesn't visit expandos", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + } + var arr = [1,2,3,4,5]; + arr["i"] = 10; + arr[true] = 11; + + arr.forEach(callbackfn); + if(callCnt == 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.js new file mode 100644 index 0000000000..6fb7453013 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.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: "15.4.4.18-8-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.js", + + description: "Array.prototype.forEach - undefined will be returned when 'len' is 0", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + } + + var result = [].forEach(callbackfn); + return typeof result === "undefined" && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js new file mode 100644 index 0000000000..df4ec7b0dc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-8-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden to null (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = null; + + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js new file mode 100644 index 0000000000..7a484d19d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-8-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden to false (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = false; + + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js new file mode 100644 index 0000000000..4dad8a1306 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-8-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js new file mode 100644 index 0000000000..9581609b64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.18-8-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = '0'; + + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js new file mode 100644 index 0000000000..310824f048 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.18-8-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { valueOf: function () { return 0;}}; + f.length = o; + + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js new file mode 100644 index 0000000000..b4d07f53ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.18-8-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js new file mode 100644 index 0000000000..b915a3192a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.18-8-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden with []", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js new file mode 100644 index 0000000000..2ff2dbc7ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.18-8-9", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js", + +description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden with [0]", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = [0]; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + var callCnt = 0; + function cb(){callCnt++} + var i = f.forEach(cb); + if (callCnt === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.forEach); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js new file mode 100644 index 0000000000..6ff5a72589 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js @@ -0,0 +1,36 @@ +/// 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: "15.4.4.19-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js", + +description: "Array.prototype.map must exist as a function", + +test: function testcase() { + var f = Array.prototype.map; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js new file mode 100644 index 0000000000..08ce8dbe4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.19-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js", + +description: "Array.prototype.map.length must be 1", + +test: function testcase() { + if (Array.prototype.map.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js new file mode 100644 index 0000000000..3e8cc3ad15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.19-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js", + + description: "Array.prototype.map - applied to undefined", + + test: function testcase() { + try { + Array.prototype.map.call(undefined); // TypeError is thrown if value is undefined + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js new file mode 100644 index 0000000000..015b7ef036 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js", + + description: "Array.prototype.map - applied to the Math object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return ('[object Math]' === Object.prototype.toString.call(obj)); + } + + try { + Math.length = 1; + Math[0] = 1; + var testResult = Array.prototype.map.call(Math, callbackfn); + return testResult[0] === true; + } finally { + delete Math[0]; + delete Math.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js new file mode 100644 index 0000000000..24622578c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.19-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js", + + description: "Array.prototype.map - applied to Date object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Date; + } + + var obj = new Date(); + obj.length = 1; + obj[0] = 1; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js new file mode 100644 index 0000000000..e68bac3927 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.19-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js", + + description: "Array.prototype.map - applied to RegExp object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof RegExp; + } + + var obj = new RegExp(); + obj.length = 1; + obj[0] = 1; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js new file mode 100644 index 0000000000..f45c5a9956 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js", + + description: "Array.prototype.map - applied to the JSON object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return ('[object JSON]' === Object.prototype.toString.call(obj)); + } + + try { + JSON.length = 1; + JSON[0] = 1; + var testResult = Array.prototype.map.call(JSON, callbackfn); + return testResult[0] === true; + } finally { + delete JSON.length; + delete JSON[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js new file mode 100644 index 0000000000..01f1532458 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.19-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js", + + description: "Array.prototype.map - applied to Error object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Error; + } + + var obj = new Error(); + obj.length = 1; + obj[0] = 1; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js new file mode 100644 index 0000000000..755aaef0fa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.19-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js", + + description: "Array.prototype.map - applied to the Arguments object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return ('[object Arguments]' === Object.prototype.toString.call(obj)); + } + + var obj = (function () { + return arguments; + }("a", "b")); + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js new file mode 100644 index 0000000000..7c1745f6fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.19-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js", + + description: "Array.prototype.map - applied to null", + + test: function testcase() { + try { + Array.prototype.map.call(null); // TypeError is thrown if value is null + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js new file mode 100644 index 0000000000..fd850c51f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.19-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js", + + description: "Array.prototype.map - applied to boolean primitive", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj instanceof Boolean; + } + + try { + Boolean.prototype[0] = true; + Boolean.prototype.length = 1; + + var testResult = Array.prototype.map.call(false, callbackfn); + return testResult[0] === true; + } finally { + delete Boolean.prototype[0]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js new file mode 100644 index 0000000000..03f1bdadca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js", + + description: "Array.prototype.map - applied to Boolean object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Boolean; + } + + var obj = new Boolean(true); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true && testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js new file mode 100644 index 0000000000..3c01034a23 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js", + + description: "Array.prototype.map - applied to number primitive", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Number; + } + + try { + Number.prototype[0] = 1; + Number.prototype.length = 1; + + var testResult = Array.prototype.map.call(2.5, callbackfn); + return testResult[0] === true; + } finally { + delete Number.prototype[0]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js new file mode 100644 index 0000000000..d52e9a86b6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js", + + description: "Array.prototype.map - applied to Number object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Number; + } + + var obj = new Number(-128); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true && testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js new file mode 100644 index 0000000000..21d60468be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js", + + description: "Array.prototype.map - applied to string primitive", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof String; + } + + var testResult = Array.prototype.map.call("abc", callbackfn); + + return testResult[0] === true && testResult[1] === true && testResult[2] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js new file mode 100644 index 0000000000..81f6d7d6b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.19-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js", + + description: "Array.prototype.map - applied to String object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof String; + } + + var obj = new String("abc"); + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true && testResult[1] === true && testResult[2] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js new file mode 100644 index 0000000000..d5a75f1a62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js", + + description: "Array.prototype.map - applied to Function object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Function; + } + + var obj = function (a, b) { + return a + b; + }; + obj[0] = 11; + obj[1] = 9; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true && testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js new file mode 100644 index 0000000000..223bf977ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js", + + description: "Array.prototype.map - applied to Array-like object when 'length' is an own data property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: 2 + }; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js new file mode 100644 index 0000000000..6b06e7fb9e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.19-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js", + + description: "Array.prototype.map - applied to Array-like object, 'length' is an inherited accessor property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.js new file mode 100644 index 0000000000..b9ba4484b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.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: "15.4.4.19-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.js", + + description: "Array.prototype.map - applied to Array-like object when 'length' is an own accessor property without a get function", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { + 0: 11, + 1: 12 + }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return 0 === testResult.length; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js new file mode 100644 index 0000000000..d2085ea598 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.19-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js", + + description: "Array.prototype.map - applied to the Array-like object when 'length' is own accessor property without a get function that overrides an inherited accessor property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var obj = { 0: 12, 1: 11 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult.length === 0; + } finally { + delete Object.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js new file mode 100644 index 0000000000..09079f0026 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.19-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js", + + description: "Array.prototype.map - applied to the Array-like object when 'length' is inherited accessor property without a get function", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 11; + child[1] = 12; + + var testResult = Array.prototype.map.call(child, callbackfn); + + return 0 === testResult.length; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js new file mode 100644 index 0000000000..0fbdd2d4ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js", + + description: "Array.prototype.map - applied to the Array-like object that 'length' property doesn't exist", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { 0: 11, 1: 12 }; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return 0 === testResult.length; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js new file mode 100644 index 0000000000..1b1e250e21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js", + + description: "Array.prototype.map - when 'length' is property of the global object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 12; + fnGlobalObject()[1] = 11; + fnGlobalObject()[2] = 9; + fnGlobalObject().length = 2; + var testResult = Array.prototype.map.call(fnGlobalObject(), callbackfn); + return testResult.length === 2; + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js new file mode 100644 index 0000000000..19ed877c4b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.19-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js", + + description: "Array.prototype.map - applied to Arguments object, which implements its own property get method", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var func = function (a, b) { + return Array.prototype.map.call(arguments, callbackfn); + }; + + var testResult = func(12, 11); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js new file mode 100644 index 0000000000..9a4f757aed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js", + + description: "Array.prototype.map - applied to String object, which implements its own property get method", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return parseInt(val, 10) > 1; + } + + var str = new String("432"); + try { + String.prototype[3] = "1"; + var testResult = Array.prototype.map.call(str, callbackfn); + + return 3 === testResult.length; + } finally { + delete String.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js new file mode 100644 index 0000000000..d9cef9f134 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js", + + description: "Array.prototype.map - applied to Function object, which implements its own property get method", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var fun = function (a, b) { + return a + b; + }; + fun[0] = 12; + fun[1] = 11; + fun[2] = 9; + + var testResult = Array.prototype.map.call(fun, callbackfn); + + return 2 === testResult.length; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js new file mode 100644 index 0000000000..d303ae8a59 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.19-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js", + + description: "Array.prototype.map - when 'length' is own data property on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var testResult = [12, 11].map(callbackfn); + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js new file mode 100644 index 0000000000..f411682c4d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js", + + description: "Array.prototype.map - applied to Array-like object, 'length' is an own data property that overrides an inherited data property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js new file mode 100644 index 0000000000..a81ea3b063 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js", + + description: "Array.prototype.map - when 'length' is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + var arrProtoLen; + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + var testResult = [12, 11].map(callbackfn); + return testResult.length === 2; + } finally { + Array.prototype.length = arrProtoLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js new file mode 100644 index 0000000000..64adab0ef9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.19-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js", + + description: "Array.prototype.map - applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.js new file mode 100644 index 0000000000..4a633d983c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.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: "15.4.4.19-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.js", + + description: "Array.prototype.map - applied to Array-like object, 'length' is an inherited data property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var proto = { length: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js new file mode 100644 index 0000000000..ce0fc080a8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.19-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js", + + description: "Array.prototype.map - applied to Array-like object, 'length' is an own accessor property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + obj[0] = 12; + obj[1] = 11; + obj[2] = 9; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js new file mode 100644 index 0000000000..6c85482c53 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.19-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js", + + description: "Array.prototype.map - applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js new file mode 100644 index 0000000000..0a5c0ad4c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.19-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js", + + description: "Array.prototype.map - applied to Array-like object when 'length' is an own accessor property that overrides an inherited accessor property", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js new file mode 100644 index 0000000000..67682d1d05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js", + + description: "Array.prototype.map - value of 'length' is undefined", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { length: undefined }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js new file mode 100644 index 0000000000..a5ed00e3e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js", + + description: "Array.prototype.map - value of 'length' is a number (value is NaN)", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 9, length: NaN }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js new file mode 100644 index 0000000000..e296e89aaa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js", + + description: "Array.prototype.map - 'length' is a string containing a positive number", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 11, 1: 9, 2: 12, length: "2" }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js new file mode 100644 index 0000000000..2046e154c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js", + + description: "Array.prototype.map - 'length' is a string containing a negative number", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 11, 1: 9, 2: 12, length: "-4294967294" }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js new file mode 100644 index 0000000000..40beab1482 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js", + + description: "Array.prototype.map - value of 'length' is string that is able to convert to number primitive (value is a decimal number)", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 11, 1: 9, 2: 12, length: "2.5" }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js new file mode 100644 index 0000000000..ccbfbdecd7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js", + + description: "Array.prototype.map - 'length' is a string containing Infinity", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 9, length: "Infinity" }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js new file mode 100644 index 0000000000..a112ea3983 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js", + + description: "Array.prototype.map - 'length' is a string containing an exponential number", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 11, 1: 9, 2: 12, length: "2E0" }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js new file mode 100644 index 0000000000..d9e55b17e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js", + + description: "Array.prototype.map - 'length' is a string containing a hex number", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 11, 1: 9, 2: 12, length: "0x0002" }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js new file mode 100644 index 0000000000..83316c1ce8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js", + + description: "Array.prototype.map - when 'length' is a string containing a number with leading zeros", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 11, 1: 9, 2: 12, length: "0002.00" }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js new file mode 100644 index 0000000000..5041e9563c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js", + + description: "Array.prototype.map - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { length: "asdf!_" }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js new file mode 100644 index 0000000000..ee2ac040cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.19-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js", + + description: "Array.prototype.map - value of 'length' is an Object which has an own toString method", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { + 0: 11, + 1: 9, + + length: { + toString: function () { + return '2'; + } + } + }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js new file mode 100644 index 0000000000..449d7e9ef3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js", + + description: "Array.prototype.map on an Array-like object if 'length' is 1 (length overridden to true(type conversion))", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { 0: 11, length: true }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js new file mode 100644 index 0000000000..2e4cc8c73e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js", + + description: "Array.prototype.map - value of 'length' is an Object which has an own valueOf method", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { + 0: 11, + 1: 9, + + length: { + valueOf: function () { + return 2; + } + } + }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js new file mode 100644 index 0000000000..28f96832d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.19-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js", + + description: "Array.prototype.map - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val < 10; + } + + var firstStepOccured = false; + var secondStepOccured = false; + var obj = { + 0: 11, + 1: 9, + + length: { + valueOf: function () { + firstStepOccured = true; + return {}; + }, + toString: function () { + secondStepOccured = true; + return '2'; + } + } + }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2 && firstStepOccured && secondStepOccured; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js new file mode 100644 index 0000000000..f7242b3e76 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.19-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js", + + description: "Array.prototype.map throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { + 1: 11, + 2: 12, + + length: { + valueOf: function () { + return {}; + }, + toString: function () { + return {}; + } + } + }; + + try { + Array.prototype.map.call(obj, callbackfn); + return false; + } catch (ex) { + return ex instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js new file mode 100644 index 0000000000..0066c7aca6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js @@ -0,0 +1,72 @@ +/// 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: "15.4.4.19-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js", + + description: "Array.prototype.map uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val < 10; + } + + var valueOfAccessed = false; + var toStringAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + child.toString = function () { + toStringAccessed = true; + return '1'; + }; + + var obj = { + 0: 11, + 1: 9, + length: child + }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2 && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js new file mode 100644 index 0000000000..0cb3bf7807 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js", + + description: "Array.prototype.map - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { + 0: 11, + 1: 9, + length: 2.685 + }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js new file mode 100644 index 0000000000..dd790674f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js", + + description: "Array.prototype.map - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { + 0: 11, + 1: 9, + length: -4294967294.5 + }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js new file mode 100644 index 0000000000..80c3e23c06 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js", + + description: "Array.prototype.map - value of 'length' is boundary value (2^32)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { + 0: 12, + length: 4294967296 + }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js new file mode 100644 index 0000000000..3fde2b7fc4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js", + + description: "Array.prototype.map - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { + 0: 11, + 1: 9, + length: 4294967297 + }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + return newArr.length === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js new file mode 100644 index 0000000000..b6e42dbcd1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js", + + description: "Array.prototype.map - value of 'length' is a number (value is 0)", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { 0: 11, length: 0 }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js new file mode 100644 index 0000000000..4171895ec4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js", + + description: "Array.prototype.map - value of 'length' is a number (value is +0)", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { 0: 11, length: +0 }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js new file mode 100644 index 0000000000..5b8a9d8cf7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js", + + description: "Array.prototype.map - value of 'length' is a number (value is -0)", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { 0: 11, length: -0 }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js new file mode 100644 index 0000000000..6d374e4e21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js", + + description: "Array.prototype.map - 'length' is a string containing a positive number", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { 0: 10, 1: 12, 2: 9, length: 2 }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js new file mode 100644 index 0000000000..a61ae20a5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js", + + description: "Array.prototype.map - 'length' is a string containing a negative number", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { 0: 10, 1: 12, 2: 9, length: -4294967294 }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js new file mode 100644 index 0000000000..dfc8c5782d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js", + + description: "Array.prototype.map - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 9, length: Infinity }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js new file mode 100644 index 0000000000..29c5ff3d0f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js", + + description: "Array.prototype.map - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 10; + } + + var obj = { 0: 9, length: -Infinity }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js new file mode 100644 index 0000000000..59f419c9fa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js", + +description: "Array.prototype.map throws TypeError if callbackfn is undefined", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.map(); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js new file mode 100644 index 0000000000..af6ceb1719 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.19-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js", + + description: "Array.prototype.map - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.map.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js new file mode 100644 index 0000000000..6689fd0668 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.19-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js", + + description: "Array.prototype.map - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.map.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js new file mode 100644 index 0000000000..02a630335d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-4-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js", + + description: "Array.prototype.map - 'callbackfn' is a function", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var testResult = [11, 9].map(callbackfn); + return testResult.length === 2 && testResult[0] === true && testResult[1] === false; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js new file mode 100644 index 0000000000..d53672ad78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.19-4-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js", + + description: "Array.prototype.map - calling with no callbackfn is the same as passing undefined for callbackfn", + + test: function testcase() { + + var obj = { 10: 10 }; + var lengthAccessed = false; + var loopAccessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + lengthAccessed = true; + return 20; + }, + configurable: true + }); + Object.defineProperty(obj, "0", { + get: function () { + loopAccessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.map.call(obj); + return false; + } catch (e) { + return e instanceof TypeError && lengthAccessed && !loopAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js new file mode 100644 index 0000000000..9bdd3af46b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-4-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js", + +description: "Array.prototype.map throws ReferenceError if callbackfn is unreferenced", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.map(foo); + } + catch(e) { + if(e instanceof ReferenceError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js new file mode 100644 index 0000000000..0b736c6346 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js", + +description: "Array.prototype.map throws TypeError if callbackfn is null", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.map(null); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js new file mode 100644 index 0000000000..df24b6d413 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js", + +description: "Array.prototype.map throws TypeError if callbackfn is boolean", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.map(true); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js new file mode 100644 index 0000000000..31f84a4bf1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js", + +description: "Array.prototype.map throws TypeError if callbackfn is number", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.map(5); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js new file mode 100644 index 0000000000..82e425ee82 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js", + +description: "Array.prototype.map throws TypeError if callbackfn is string", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.map("abc"); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js new file mode 100644 index 0000000000..bd7f15aa38 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js", + +description: "Array.prototype.map throws TypeError if callbackfn is Object without Call internal method", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.map(new Object()); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js new file mode 100644 index 0000000000..e69a1dcbe5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.19-4-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js", + + description: "Array.prototype.map - Side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.map.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js new file mode 100644 index 0000000000..e717e1b2ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.19-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js", + + description: "Array.prototype.map - Side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.map.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js new file mode 100644 index 0000000000..1a56433833 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-5-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js", + +description: "Array.prototype.map - thisArg not passed", + +test: function testcase() { + try { + fnGlobalObject()._15_4_4_19_5_1 = true; + var _15_4_4_19_5_1 = false; + + function callbackfn(val, idx, obj) { + return this._15_4_4_19_5_1; + } + var srcArr = [1]; + var resArr = srcArr.map(callbackfn); + if( resArr[0] === true) + return true; + + return false; + } + finally { + delete fnGlobalObject()._15_4_4_19_5_1; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js new file mode 100644 index 0000000000..38dc466630 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js", + + description: "Array.prototype.map - Array object can be used as thisArg", + + test: function testcase() { + + var objArray = new Array(2); + + function callbackfn(val, idx, obj) { + return this === objArray; + } + + var testResult = [11].map(callbackfn, objArray); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js new file mode 100644 index 0000000000..89dce55488 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js", + + description: "Array.prototype.map - String object can be used as thisArg", + + test: function testcase() { + + var objString = new String(); + + function callbackfn(val, idx, obj) { + return this === objString; + } + + var testResult = [11].map(callbackfn, objString); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js new file mode 100644 index 0000000000..323ee9cbdc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js", + + description: "Array.prototype.map - Boolean object can be used as thisArg", + + test: function testcase() { + + var objBoolean = new Boolean(); + + function callbackfn(val, idx, obj) { + return this === objBoolean; + } + + var testResult = [11].map(callbackfn, objBoolean); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js new file mode 100644 index 0000000000..680ba439d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js", + + description: "Array.prototype.map - Number object can be used as thisArg", + + test: function testcase() { + + var objNumber = new Number(); + + function callbackfn(val, idx, obj) { + return this === objNumber; + } + + var testResult = [11].map(callbackfn, objNumber); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js new file mode 100644 index 0000000000..93db6d40aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-5-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js", + + description: "Array.prototype.map - the Math object can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this === Math; + } + + var testResult = [11].map(callbackfn, Math); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js new file mode 100644 index 0000000000..7707ed002c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-5-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js", + + description: "Array.prototype.map - Date object can be used as thisArg", + + test: function testcase() { + + var objDate = new Date(); + + function callbackfn(val, idx, obj) { + return this === objDate; + } + + var testResult = [11].map(callbackfn, objDate); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js new file mode 100644 index 0000000000..b25a7a0745 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-5-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js", + + description: "Array.prototype.map - RegExp object can be used as thisArg", + + test: function testcase() { + + var objRegExp = new RegExp(); + + function callbackfn(val, idx, obj) { + return this === objRegExp; + } + + var testResult = [11].map(callbackfn, objRegExp); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js new file mode 100644 index 0000000000..0ffb201e1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-5-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js", + + description: "Array.prototype.map - the JSON object can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this === JSON; + } + + var testResult = [11].map(callbackfn, JSON); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js new file mode 100644 index 0000000000..86807fefe0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-5-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js", + + description: "Array.prototype.map - Error object can be used as thisArg", + + test: function testcase() { + + var objError = new RangeError(); + + function callbackfn(val, idx, obj) { + return this === objError; + } + + var testResult = [11].map(callbackfn, objError); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js new file mode 100644 index 0000000000..544e7c76c8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-5-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js", + + description: "Array.prototype.map - the Arguments object can be used as thisArg", + + test: function testcase() { + + var arg; + + function callbackfn(val, idx, obj) { + return this === arg; + } + + arg = (function () { + return arguments; + }(1, 2, 3)); + + var testResult = [11].map(callbackfn, arg); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js new file mode 100644 index 0000000000..b7911bd594 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js", + +description: "Array.prototype.map - thisArg is Object", + +test: function testcase() { + var res = false; + var o = new Object(); + o.res = true; + function callbackfn(val, idx, obj) + { + return this.res; + } + + var srcArr = [1]; + var resArr = srcArr.map(callbackfn,o); + if( resArr[0] === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js new file mode 100644 index 0000000000..4ef40deaf2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-5-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js", + + description: "Array.prototype.map - the global object can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this === fnGlobalObject(); + } + + var testResult = [11].map(callbackfn, fnGlobalObject()); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js new file mode 100644 index 0000000000..e9d3f4a1d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.19-5-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js", + + description: "Array.prototype.map - boolean primitive can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === false; + } + + var testResult = [11].map(callbackfn, false); + return testResult[0] === true; + }, + + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js new file mode 100644 index 0000000000..45163269eb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-5-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js", + + description: "Array.prototype.map - number primitive can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === 101; + } + + var testResult = [11].map(callbackfn, 101); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js new file mode 100644 index 0000000000..a9dd86c60f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-5-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js", + + description: "Array.prototype.map - string primitive can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === "abc"; + } + + var testResult = [11].map(callbackfn, "abc"); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js new file mode 100644 index 0000000000..4c430a6ac5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js", + +description: "Array.prototype.map - thisArg is Array", + +test: function testcase() { + var res = false; + var a = new Array(); + a.res = true; + function callbackfn(val, idx, obj) + { + return this.res; + } + + var srcArr = [1]; + var resArr = srcArr.map(callbackfn,a); + if( resArr[0] === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js new file mode 100644 index 0000000000..cbcc3626f2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js", + +description: "Array.prototype.map - thisArg is object from object template(prototype)", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + foo.prototype.res = true; + var f = new foo(); + + var srcArr = [1]; + var resArr = srcArr.map(callbackfn,f); + if( resArr[0] === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js new file mode 100644 index 0000000000..f27a3ad729 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js", + +description: "Array.prototype.map - thisArg is object from object template", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + var f = new foo(); + f.res = true; + + var srcArr = [1]; + var resArr = srcArr.map(callbackfn,f); + if( resArr[0] === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js new file mode 100644 index 0000000000..5eb524f1fd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.19-5-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js", + +description: "Array.prototype.map - thisArg is function", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + foo.res = true; + + var srcArr = [1]; + var resArr = srcArr.map(callbackfn,foo); + if( resArr[0] === true) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js new file mode 100644 index 0000000000..ebf820e23e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-5-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js", + + description: "Array.prototype.map - built-in functions can be used as thisArg", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this === eval; + } + + var testResult = [11].map(callbackfn, eval); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js new file mode 100644 index 0000000000..595ffa8650 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js", + + description: "Array.prototype.map - Function object can be used as thisArg", + + test: function testcase() { + + var objFunction = function () { }; + + function callbackfn(val, idx, obj) { + return this === objFunction; + } + + var testResult = [11].map(callbackfn, objFunction); + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.js new file mode 100644 index 0000000000..e30896cc07 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.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: "15.4.4.19-6-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.js", + + description: "Array.prototype.map - Array.isArray returns true when input argument is the ourput array", + + test: function testcase() { + + var newArr = [11].map(function () { }); + + return Array.isArray(newArr); + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Array.isArray); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js new file mode 100644 index 0000000000..b4b816ce2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js @@ -0,0 +1,42 @@ +/// Copyright (c) 1909 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: "15.4.4.19-6-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js", + + description: "Array.prototype.map - the returned array is instanceof Array", + + test: function testcase() { + + var newArr = [11].map(function () { }); + + return newArr instanceof Array; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js new file mode 100644 index 0000000000..c0311076c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-8-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js", + +description: "Array.prototype.map doesn't consider new elements added to array after it is called", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + srcArr[2] = 3; + srcArr[5] = 6; + return 1; + } + + var srcArr = [1,2,,4,5]; + var resArr = srcArr.map(callbackfn); + if(resArr.length === 5) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js new file mode 100644 index 0000000000..102d11c134 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-8-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js", + +description: "Array.prototype.map considers new value of elements in array after it is called", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + srcArr[4] = -1; + if(val > 0) + return 1; + else + return 0; + } + + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.map(callbackfn); + if(resArr.length === 5 && resArr[4] === 0) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js new file mode 100644 index 0000000000..03ea75e66c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-8-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js", + +description: "Array.prototype.map doesn't visit deleted elements in array after the call", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + delete srcArr[4]; + if(val > 0) + return 1; + else + return 0; + + } + + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.map(callbackfn); + if(resArr.length === 5 && resArr[4] === undefined) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js new file mode 100644 index 0000000000..a869563d3c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.19-8-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js", + +description: "Array.prototype.map doesn't visit deleted elements when Array.length is decreased", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + srcArr.length = 2; + callCnt++; + return 1; + } + + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.map(callbackfn); + if(resArr.length === 5 && callCnt === 2 && resArr[2] === undefined) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js new file mode 100644 index 0000000000..fa2e5842c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-8-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js", + +description: "Array.prototype.map doesn't consider newly added elements in sparse array", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + srcArr[1000] = 3; + callCnt++; + return val; + } + + var srcArr = new Array(10); + srcArr[1] = 1; + srcArr[2] = 2; + var resArr = srcArr.map(callbackfn); + if( resArr.length === 10 && callCnt === 2) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js new file mode 100644 index 0000000000..2bb2814cbc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.19-8-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js", + +description: "Array.prototype.map visits deleted element in array after the call when same index is also present in prototype", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + delete srcArr[4]; + if(val > 0) + return 1; + else + return 0; + + } + + Array.prototype[4] = 5; + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.map(callbackfn); + delete Array.prototype[4]; + if(resArr.length === 5 && resArr[4] === 1) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js new file mode 100644 index 0000000000..284c5f5cb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-8-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js", + + description: "Array.prototype.map successful to delete the object in callbackfn", + + test: function testcase() { + var obj = {}; + obj.srcArr = [1, 2, 3, 4, 5]; + + function callbackfn(val, idx, obj) { + delete obj.srcArr; + if (val > 0) + return 1; + else + return 0; + } + + var resArr = obj.srcArr.map(callbackfn); + return resArr.toString() === "1,1,1,1,1" && !obj.hasOwnProperty("arr"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js new file mode 100644 index 0000000000..e620923575 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-8-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js", + + description: "Array.prototype.map - no observable effects occur if length is 0 on an Array-like object", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, 1: 12, length: 0 }; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js new file mode 100644 index 0000000000..d792b528d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.19-8-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js", + + description: "Array.prototype.map - modifications to length don't change number of iterations on an Array", + + test: function testcase() { + var called = 0; + function callbackfn(val, idx, obj) { + called += 1; + return val > 10; + } + + var arr = [9, , 12]; + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 8; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + + return testResult.length === 3 && called === 2 && typeof testResult[2] === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js new file mode 100644 index 0000000000..322d421479 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-8-b-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js", + +description: "Array.prototype.map - callbackfn not called for indexes never been assigned values", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + return 1; + } + + var srcArr = new Array(10); + srcArr[1] = undefined; //explicitly assigning a value + var resArr = srcArr.map(callbackfn); + if( resArr.length === 10 && callCnt === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js new file mode 100644 index 0000000000..00d5c7efc1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.19-8-b-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js", + + description: "Array.prototype.map - deleting property of prototype causes prototype index property not to be visited on an Array-like Object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return idx === 1 && typeof val === "undefined"; + } + var obj = { 2: 2, length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete Object.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult.length === 20 && typeof testResult[1] === "undefined"; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js new file mode 100644 index 0000000000..3f79e3abf9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.19-8-b-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js", + + description: "Array.prototype.map - deleting property of prototype causes prototype index property not to be visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return idx === 1 && typeof val === "undefined"; + } + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + var testResult = arr.map(callbackfn); + return testResult.length === 3 && typeof testResult[1] === "undefined"; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js new file mode 100644 index 0000000000..1ba472dfe8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.19-8-b-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js", + + description: "Array.prototype.map - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 3) { + return false; + } else { + return true; + } + } + var obj = { 0: 0, 1: 1, 2: 2, length: 10 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 3; + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult[1] === false; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js new file mode 100644 index 0000000000..80e9be376a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.19-8-b-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js", + + description: "Array.prototype.map - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 3) { + return false; + } else { + return true; + } + } + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 3; + var testResult = arr.map(callbackfn); + return testResult[1] === false; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js new file mode 100644 index 0000000000..e231f52c4c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.19-8-b-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js", + + description: "Array.prototype.map - decreasing length of array causes index property not to be visited", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return idx === 3 && typeof val === "undefined"; + } + + var arr = [0, 1, 2, "last"]; + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 3; + return 0; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + return typeof testResult[3] === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js new file mode 100644 index 0000000000..5b24f65bb5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.19-8-b-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js", + + description: "Array.prototype.map - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "prototype") { + return false; + } else { + return true; + } + } + var arr = [0, 1, 2]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + return testResult.length === 3 && testResult[2] === false; + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js new file mode 100644 index 0000000000..9b2daae9ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.19-8-b-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js", + + description: "Array.prototype.map - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "unconfigurable") { + return false; + } else { + return true; + } + } + + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + return testResult.length === 3 && testResult[2] === false; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.js new file mode 100644 index 0000000000..244096ed47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.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: "15.4.4.19-8-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.js", + + description: "Array.prototype.map - added properties in step 2 are visible here", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2 && val === "length") { + return false; + } else { + return true; + } + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + obj[2] = "length"; + return 3; + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult[2] === false; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js new file mode 100644 index 0000000000..d9c36b543a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-8-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js", + + description: "Array.prototype.map - deleted properties in step 2 are visible here", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 2) { + return false; + } else { + return true; + } + } + var obj = { 2: 6.99, 8: 19 }; + + Object.defineProperty(obj, "length", { + get: function () { + delete obj[2]; + return 10; + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + return typeof testResult[2] === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js new file mode 100644 index 0000000000..6f98159431 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.19-8-b-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js", + + description: "Array.prototype.map - properties added into own object after current position are visited on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return false; + } else { + return true; + } + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + Object.defineProperty(obj, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult[0] === true && testResult[1] === false; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js new file mode 100644 index 0000000000..03960be83f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.19-8-b-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js", + + description: "Array.prototype.map - properties added into own object after current position are visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 1) { + return false; + } else { + return true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + return testResult[0] === true && testResult[1] === false; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js new file mode 100644 index 0000000000..66ea47041a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.19-8-b-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js", + + description: "Array.prototype.map - properties can be added to prototype after current position are visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 6.99) { + return false; + } else { + return true; + } + } + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult[0] === true && testResult[1] === false; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js new file mode 100644 index 0000000000..ac4fc4f84a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.19-8-b-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js", + + description: "Array.prototype.map - properties can be added to prototype after current position are visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1 && val === 6.99) { + return false; + } else { + return true; + } + } + var arr = [0, , 2]; + + try { + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + return testResult[0] === true && testResult[1] === false; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js new file mode 100644 index 0000000000..4d551c4fc6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.19-8-b-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js", + + description: "Array.prototype.map - deleting own property causes index property not to be visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1) { + return false; + } else { + return true; + } + } + var obj = { length: 2 }; + + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult[0] === true && typeof testResult[1] === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js new file mode 100644 index 0000000000..53ffa94164 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.19-8-b-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js", + + description: "Array.prototype.map - deleting own property causes index property not to be visited on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return false; + } else { + return true; + } + } + var arr = [1, 2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + return testResult[0] === true && typeof testResult[1] === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js new file mode 100644 index 0000000000..9134eb7900 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.19-8-c-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js", + + description: "Array.prototype.map - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var kValue = {}; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val === kValue; + } + return false; + } + + var obj = { 5: kValue, length: 100 }; + + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr[5] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js new file mode 100644 index 0000000000..fab37f3d32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.19-8-c-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var arr = []; + + Object.defineProperty(arr, "0", { + get: function () { + return kValue; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js new file mode 100644 index 0000000000..6b981450ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.19-8-c-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var proto = { 0: 5, length: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "0", { + get: function () { + return kValue; + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js new file mode 100644 index 0000000000..9c46246665 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.19-8-c-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var arr = []; + + try { + Array.prototype[0] = 11; + + Object.defineProperty(arr, "0", { + get: function () { + return kValue; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + + return testResult[0] === true; + } finally { + delete Array.prototype[0]; + } + + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js new file mode 100644 index 0000000000..677e5c08c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js @@ -0,0 +1,72 @@ +/// 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: "15.4.4.19-8-c-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var proto = { length: 2 }; + + Object.defineProperty(proto, "0", { + get: function () { + return 5; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "0", { + get: function () { + return kValue; + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js new file mode 100644 index 0000000000..f6bbc3378a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.19-8-c-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var arr = []; + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + return kValue; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + + return testResult[0] === true; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js new file mode 100644 index 0000000000..db6114ad74 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.19-8-c-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js", + + description: "Array.prototype.map - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var proto = { length: 2 }; + + Object.defineProperty(proto, "0", { + get: function () { + return kValue; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js new file mode 100644 index 0000000000..bd1c8f6340 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.19-8-c-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js", + + description: "Array.prototype.map - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return kValue; + }, + configurable: true + }); + + var testResult = [, ].map(callbackfn); + + return testResult[0] === true; + } finally { + delete Array.prototype[0]; + } + + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js new file mode 100644 index 0000000000..8fc45d662c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-8-c-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return typeof val === "undefined"; + } + return false; + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js new file mode 100644 index 0000000000..0f7668634f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-8-c-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return typeof val === "undefined"; + } + return false; + } + + var arr = []; + + Object.defineProperty(arr, "1", { + set: function () { }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + + return testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js new file mode 100644 index 0000000000..cdd914f477 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.19-8-c-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return typeof val === "undefined"; + } + return false; + } + + var arr = []; + + try { + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 100; + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + + return testResult[0] === true; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js new file mode 100644 index 0000000000..636dbb928b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.19-8-c-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js", + + description: "Array.prototype.map - element to be retrieved is own data property on an Array", + + test: function testcase() { + + var kValue = {}; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var arr = [kValue]; + + var newArr = arr.map(callbackfn); + + return newArr[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js new file mode 100644 index 0000000000..de49cabc20 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.19-8-c-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return typeof val === "undefined"; + } + return false; + } + + var proto = {}; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + + Object.defineProperty(child, "0", { + set: function () { }, + configurable: true + }); + + Object.defineProperty(proto, "0", { + get: function () { + return 100; + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js new file mode 100644 index 0000000000..91641e65d8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.19-8-c-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js", + + description: "Array.prototype.map - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return typeof val === "undefined"; + } + return false; + } + + var proto = { length: 2 }; + Object.defineProperty(proto, "0", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js new file mode 100644 index 0000000000..5806410633 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.19-8-c-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js", + + description: "Array.prototype.map - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return typeof val === "undefined"; + } + return false; + } + + try { + Object.defineProperty(Array.prototype, "0", { + set: function () { }, + configurable: true + }); + + var testResult = [,].map(callbackfn); + + return testResult[0] === true; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js new file mode 100644 index 0000000000..9efac0c1e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.19-8-c-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js", + + description: "Array.prototype.map - This object is the global object which contains index property", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = kValue; + fnGlobalObject().length = 2; + + var testResult = Array.prototype.map.call(fnGlobalObject(), callbackfn); + + return testResult[0] === true; + } finally { + delete fnGlobalObject()[0]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js new file mode 100644 index 0000000000..a727fccab8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.19-8-c-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js", + + description: "Array.prototype.map - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 9; + } else { + return false; + } + } + + var func = function (a, b) { + return Array.prototype.map.call(arguments, callbackfn); + }; + + var testResult = func(9); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js new file mode 100644 index 0000000000..5af7c6edd6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-8-c-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js", + + description: "Array.prototype.map - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 9; + } else if (idx === 1) { + return val === 11; + } else { + return false; + } + } + + var func = function (a, b) { + return Array.prototype.map.call(arguments, callbackfn); + }; + + var testResult = func(9, 11); + + return testResult[0] === true && testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js new file mode 100644 index 0000000000..a375312ea8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.19-8-c-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js", + + description: "Array.prototype.map - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 9; + } else if (idx === 1) { + return val === 11; + } else if (idx === 2) { + return val === 12; + } else { + return false; + } + + } + + var func = function (a, b) { + return Array.prototype.map.call(arguments, callbackfn); + }; + + var testResult = func(9, 11, 12); + + return testResult[0] === true && testResult[1] === true && testResult[2] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js new file mode 100644 index 0000000000..70e7785d24 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js @@ -0,0 +1,74 @@ +/// 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: "15.4.4.19-8-c-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js", + + description: "Array.prototype.map - element changed by getter on previous iterations is observed on an Array", + + test: function testcase() { + + var preIterVisible = false; + var arr = []; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } else if (idx === 1) { + return val === 9; + } else { + return false; + } + } + + Object.defineProperty(arr, "0", { + get: function () { + preIterVisible = true; + return 11; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return 9; + } else { + return 11; + } + }, + configurable: true + }); + + var testResult = arr.map(callbackfn); + + return testResult[0] === true && testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js new file mode 100644 index 0000000000..d46dc0419f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js @@ -0,0 +1,74 @@ +/// 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: "15.4.4.19-8-c-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js", + + description: "Array.prototype.map - element changed by getter on previous iterations is observed on an Array-like object", + + test: function testcase() { + + var preIterVisible = false; + var obj = { length: 2 }; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } else if (idx === 1) { + return val === 9; + } else { + return false; + } + } + + Object.defineProperty(obj, "0", { + get: function () { + preIterVisible = true; + return 11; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return 9; + } else { + return 11; + } + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true && testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js new file mode 100644 index 0000000000..db2c05c65c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.19-8-c-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js", + + description: "Array.prototype.map - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val === kValue; + } + return false; + } + + var proto = { 5: 12, length: 10 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[5] = kValue; + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult[5] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js new file mode 100644 index 0000000000..3db2fc8e3c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.19-8-c-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js", + + description: "Array.prototype.map - unhandled exceptions happened in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var obj = { 0: 11, 5: 10, 10: 8, length: 20 }; + var accessed = false; + + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + } + + Object.defineProperty(obj, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + Object.defineProperty(obj, "2", { + get: function () { + accessed = true; + return 100; + }, + configurable: true + }); + + try { + Array.prototype.map.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js new file mode 100644 index 0000000000..d816f27330 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js @@ -0,0 +1,72 @@ +/// 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: "15.4.4.19-8-c-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js", + + description: "Array.prototype.map - unhandled exceptions happened in getter terminate iteration on an Array", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + } + + var arr = []; + arr[5] = 10; + arr[10] = 100; + + Object.defineProperty(arr, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + Object.defineProperty(arr, "2", { + get: function () { + accessed = true; + return 100; + }, + configurable: true + }); + + try { + arr.map(callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js new file mode 100644 index 0000000000..eedf44b5d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.19-8-c-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js", + + description: "Array.prototype.map - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + try { + Array.prototype[0] = 11; + + var testResult = [kValue].map(callbackfn); + + return testResult[0] === true; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js new file mode 100644 index 0000000000..ae657ca853 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.19-8-c-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js", + + description: "Array.prototype.map - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val === kValue; + } + return false; + } + + var proto = {}; + + Object.defineProperty(proto, "5", { + get: function () { + return 11; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + Object.defineProperty(child, "5", { + value: kValue, + configurable: true + }); + + var testResult = Array.prototype.map.call(child, callbackfn); + + return testResult[5] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js new file mode 100644 index 0000000000..fc6778467c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.19-8-c-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js", + + description: "Array.prototype.map - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 9; + }, + configurable: true + }); + + var testResult = [kValue].map(callbackfn); + return testResult[0] === true; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js new file mode 100644 index 0000000000..79ff2bd969 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.19-8-c-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js", + + description: "Array.prototype.map - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 5) { + return val === kValue; + } + return false; + } + + var proto = { 5: kValue, length: 10 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + var newArr = Array.prototype.map.call(child, callbackfn); + + return newArr[5] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js new file mode 100644 index 0000000000..95b08cfbf9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.19-8-c-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js", + + description: "Array.prototype.map - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === 13; + } + return false; + } + + try { + Array.prototype[1] = 13; + + var newArr = [, , , ].map(callbackfn); + + return newArr[1] === true; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js new file mode 100644 index 0000000000..c1e6e9aec5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.19-8-c-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js", + + description: "Array.prototype.map - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var kValue = "abc"; + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === kValue; + } + return false; + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + return kValue; + }, + configurable: true + }); + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js new file mode 100644 index 0000000000..fa8527aa08 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-8-c-ii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js", + +description: "Array.prototype.map - callbackfn called with correct parameters", + +test: function testcase() { + + var bPar = true; + var bCalled = false; + function callbackfn(val, idx, obj) + { + bCalled = true; + if(obj[idx] !== val) + bPar = false; + } + + var srcArr = [0,1,true,null,new Object(),"five"]; + srcArr[999999] = -6.6; + resArr = srcArr.map(callbackfn); + + if(bCalled === true && bPar === true) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js new file mode 100644 index 0000000000..c1c005de44 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.19-8-c-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js", + + description: "Array.prototype.map - callbackfn is called with 1 formal parameter", + + test: function testcase() { + + function callbackfn(val) { + return val > 10; + } + + var testResult = [11].map(callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js new file mode 100644 index 0000000000..e017cbc9b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.19-8-c-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js", + + description: "Array.prototype.map - callbackfn is called with 2 formal parameters", + + test: function testcase() { + function callbackfn(val, idx) { + return (val > 10 && arguments[2][idx] === val); + } + + var testResult = [11].map(callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js new file mode 100644 index 0000000000..e8a2951b47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.19-8-c-ii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js", + + description: "Array.prototype.map - callbackfn is called with 3 formal parameters", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return (val > 10 && obj[idx] === val); + } + + var testResult = [11].map(callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js new file mode 100644 index 0000000000..110bea8efb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.19-8-c-ii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js", + + description: "Array.prototype.map - callbackfn that uses arguments object to get parameter value", + + test: function testcase() { + + function callbackfn() { + return arguments[2][arguments[1]] === arguments[0]; + } + + var testResult = [11].map(callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js new file mode 100644 index 0000000000..5b250a8fd7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-8-c-ii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js", + + description: "Array.prototype.map - 'this' object when T is not an object (T is a boolean primitive)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === false; + } + + var obj = { 0: 11, length: 2 }; + + var testResult = Array.prototype.map.call(obj, callbackfn, false); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js new file mode 100644 index 0000000000..c8e66b10e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-8-c-ii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js", + + description: "Array.prototype.map - 'this' object when T is not an object (T is a number)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === 5; + } + + var obj = { 0: 11, length: 2 }; + + var testResult = Array.prototype.map.call(obj, callbackfn, 5); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js new file mode 100644 index 0000000000..b3432f5ff1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-8-c-ii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js", + + description: "Array.prototype.map - 'this' object when T is not an object (T is a string primitive)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === "hello!"; + } + + var obj = { 0: 11, length: 2 }; + + var testResult = Array.prototype.map.call(obj, callbackfn, "hello!"); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.js new file mode 100644 index 0000000000..a18357654b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.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: "15.4.4.19-8-c-ii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.js", + + description: "Array.prototype.map - non-indexed properties are not called.", + + test: function testcase() { + + var called = 0; + var result = false; + + function callbackfn(val, idx, obj) { + called++; + if (val === 11) { + result = true; + } + return true; + } + + var obj = { 0: 9, non_index_property: 11, length: 20 }; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return !result && testResult[0] === true && called === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js new file mode 100644 index 0000000000..5f2db641ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-8-c-ii-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js", + +description: "Array.prototype.map - callbackfn takes 3 arguments", + +test: function testcase() { + + var parCnt = 3; + var bCalled = false + function callbackfn(val, idx, obj) + { + bCalled = true; + if(arguments.length !== 3) + parCnt = arguments.length; //verify if callbackfn was called with 3 parameters + } + + var srcArr = [0,1,2,3,4,5,6,7,8,9]; + var resArr = srcArr.map(callbackfn); + if(bCalled === true && parCnt === 3) + return true; + + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js new file mode 100644 index 0000000000..cd6004f1a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-8-c-ii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js", + + description: "Array.prototype.map - callbackfn called with correct parameters (thisArg is correct)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.threshold === 10; + } + + var thisArg = { threshold: 10 }; + + var obj = { 0: 11, 1: 9, length: 2 }; + + var testResult = Array.prototype.map.call(obj, callbackfn, thisArg); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js new file mode 100644 index 0000000000..1e7419a908 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-8-c-ii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js", + + description: "Array.prototype.map - callbackfn called with correct parameters (kValue is correct)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } + + if (idx === 1) { + return val === 12; + } + + return false; + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true && testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js new file mode 100644 index 0000000000..5cbc0f1527 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-8-c-ii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js", + + description: "Array.prototype.map - callbackfn called with correct parameters (the index k is correct)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (val === 11) { + return idx === 0; + } + + if (val === 12) { + return idx === 1; + } + + return false; + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true && testResult[1] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js new file mode 100644 index 0000000000..dffc20513d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-8-c-ii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js", + + description: "Array.prototype.map - callbackfn called with correct parameters (this object O is correct)", + + test: function testcase() { + + var obj = { 0: 11, length: 2 }; + + function callbackfn(val, idx, o) { + return obj === o; + } + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js new file mode 100644 index 0000000000..4398579984 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.19-8-c-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js", + + description: "Array.prototype.map - k values are passed in acending numeric order", + + test: function testcase() { + + var arr = [0, 1, 2, 3, 4, 5]; + var lastIdx = 0; + var called = 0; + var result = true; + function callbackfn(val, idx, o) { + called++; + if (lastIdx !== idx) { + result = false; + } else { + lastIdx++; + } + } + + arr.map(callbackfn); + return result && arr.length === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js new file mode 100644 index 0000000000..00facf8dd3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.19-8-c-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js", + + description: "Array.prototype.map - k values are accessed during each iteration and not prior to starting the loop.", + + test: function testcase() { + + var kIndex = []; + + //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time. + function callbackfn(val, idx, obj) { + //Each position should be visited one time, which means k is accessed one time during iterations. + if (typeof kIndex[idx] === "undefined") { + //when current position is visited, its previous index should has been visited. + if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") { + return true; + } + kIndex[idx] = 1; + return false; + } else { + return true; + } + } + + var testResult = [11, 12, 13, 14].map(callbackfn); + + return testResult.length === 4 && testResult[0] === false && + testResult[1] === false && testResult[2] === false && + testResult[3] === false; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js new file mode 100644 index 0000000000..e51f31efc6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-8-c-ii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js", + + description: "Array.prototype.map - arguments to callbackfn are self consistent.", + + test: function testcase() { + + var obj = { 0: 11, length: 1 }; + var thisArg = {}; + + function callbackfn() { + return this === thisArg && + arguments[0] === 11 && + arguments[1] === 0 && + arguments[2] === obj; + } + + var testResult = Array.prototype.map.call(obj, callbackfn, thisArg); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js new file mode 100644 index 0000000000..ba2b5a5134 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.19-8-c-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js", + + description: "Array.prototype.map - unhandled exceptions happened in callbackfn terminate iteration", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + if (idx > 0) { + accessed = true; + } + if (idx === 0) { + throw new Error("Exception occurred in callbackfn"); + } + } + + var obj = { 0: 11, 4: 10, 10: 8, length: 20 }; + + try { + Array.prototype.map.call(obj, callbackfn); + return false; + } catch (ex) { + return ex instanceof Error && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js new file mode 100644 index 0000000000..3107a4c0c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-8-c-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js", + + description: "Array.prototype.map - element changed by callbackfn on previous iterations is observed", + + test: function testcase() { + + var obj = { 0: 9, 1: 12, length: 2 }; + + function callbackfn(val, idx, o) { + if (idx === 0) { + obj[idx + 1] = 8; + } + return val > 10; + } + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult[1] === false; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js new file mode 100644 index 0000000000..9775238d8b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.19-8-c-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js", + + description: "Array.prototype.map - callbackfn with 0 formal parameter", + + test: function testcase() { + + function callbackfn() { + return true; + } + + var testResult = [11].map(callbackfn); + + return testResult[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js new file mode 100644 index 0000000000..b961b30816 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.19-8-c-iii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js", + +description: "Array.prototype.map - getOwnPropertyDescriptor(all true) of returned array element", + +test: function testcase() { + + function callbackfn(val, idx, obj){ + if(val % 2) + return (2 * val + 1); + else + return (val / 2); + } + var srcArr = [0,1,2,3,4]; + var resArr = srcArr.map(callbackfn); + if (resArr.length > 0){ + var desc = Object.getOwnPropertyDescriptor(resArr, 1) + if(desc.value === 3 && //srcArr[1] = 2*1+1 = 3 + desc.writable === true && + desc.enumerable === true && + desc.configurable === true){ + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js new file mode 100644 index 0000000000..8a18f76691 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.19-8-c-iii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js", + + description: "Array.prototype.map - value of returned array element equals to 'mappedValue'", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val; + } + + var obj = { 0: 11, 1: 9, length: 2 }; + var newArr = Array.prototype.map.call(obj, callbackfn); + + return newArr[0] === obj[0] && newArr[1] === obj[1]; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js new file mode 100644 index 0000000000..8da47ea9f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-8-c-iii-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js", + + description: "Array.prototype.map - value of returned array element can be overwritten", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return 11; + } + + var obj = { 0: 11, 1: 9, length: 2 }; + var newArr = Array.prototype.map.call(obj, callbackfn); + + try { + var tempVal = newArr[1]; + newArr[1] += 1; + return newArr[1] !== tempVal; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js new file mode 100644 index 0000000000..0c3b2bbdf5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.19-8-c-iii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js", + + description: "Array.prototype.map - value of returned array element can be enumerated", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, length: 2 }; + var newArr = Array.prototype.map.call(obj, callbackfn); + + var prop; + var enumerable = false; + for (prop in newArr) { + if (newArr.hasOwnProperty(prop)) { + if (prop === "0") { + enumerable = true; + } + } + } + + return enumerable; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js new file mode 100644 index 0000000000..727491ea50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.19-8-c-iii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js", + + description: "Array.prototype.map - value of returned array element can be changed or deleted", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, 1: 9, length: 2 }; + var newArr = Array.prototype.map.call(obj, callbackfn); + + try { + var tempVal = newArr[1]; + delete newArr[1]; + return tempVal !== undefined && newArr[1] === undefined; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js new file mode 100644 index 0000000000..3bafa71a69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-9-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js", + +description: "Array.prototype.map doesn't mutate the Array on which it is called on", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + return true; + } + var srcArr = [1,2,3,4,5]; + srcArr.map(callbackfn); + if(srcArr[0] === 1 && + srcArr[1] === 2 && + srcArr[2] === 3 && + srcArr[3] === 4 && + srcArr[4] === 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js new file mode 100644 index 0000000000..11f3af5f65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.19-9-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js", + + description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var Foo = function () { }; + Foo.prototype = [1, 2, 3]; + var obj = new Foo(); + obj.length = { + valueOf: function () { + return 0; + } + }; + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js new file mode 100644 index 0000000000..5dd868fb00 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.19-9-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js", + + description: "Array.prototype.map - returns an empty array if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))", + + test: function testcase() { + function Foo() { } + Foo.prototype = [1, 2, 3]; + + var f = new Foo(); + + var o = { + toString: function () { + return '0'; + } + }; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + function cb() { } + var a = Array.prototype.map.call(f, cb); + + if (Array.isArray(a) && a.length === 0) { + return true; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js new file mode 100644 index 0000000000..2e4eff2c34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.19-9-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js", + + description: "Array.prototype.map - returns an empty array if 'length' is 0 (subclassed Array, length overridden with [])", + + test: function testcase() { + function Foo() { } + Foo.prototype = [1, 2, 3]; + var f = new Foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb() { } + var a = Array.prototype.map.call(f, cb); + + if (Array.isArray(a) && a.length === 0) { + return true; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map) && fnExists(Array.isArray); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js new file mode 100644 index 0000000000..4f2db4871a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.19-9-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js", + + description: "Array.prototype.map - if there are no side effects of the functions, O is unmodified", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val > 2; + } + + var arr = [1, 2, 3, 4]; + + arr.map(callbackfn); + + return 1 === arr[0] && 2 === arr[1] && 3 === arr[2] && 4 === arr[3] && 4 === called; + + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js new file mode 100644 index 0000000000..6dda780433 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-9-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js", + +description: "Array.prototype.map returns new Array with same number of elements and values the result of callbackfn", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + return val + 10; + } + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.map(callbackfn); + if(resArr[0] === 11 && + resArr[1] === 12 && + resArr[2] === 13 && + resArr[3] === 14 && + resArr[4] === 15) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js new file mode 100644 index 0000000000..ea654c048c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.19-9-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js", + +description: "Array.prototype.map - subclassed array when length is reduced", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 1; + + function cb(){} + var a = f.map(cb); + + if (Array.isArray(a) && + a.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js new file mode 100644 index 0000000000..678630e871 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.19-9-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js", + +description: "Array.prototype.map doesn't visit expandos", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + } + var srcArr = [1,2,3,4,5]; + srcArr["i"] = 10; + srcArr[true] = 11; + + var resArr = srcArr.map(callbackfn); + if(callCnt == 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.map); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js new file mode 100644 index 0000000000..ef83730441 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.19-9-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js", + + description: "Array.prototype.map - empty array to be returned if 'length' is 0 (empty array)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var obj = { 0: 9, 1: 8, length: 0 }; + + var testResult = Array.prototype.map.call(obj, callbackfn); + + return testResult.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js new file mode 100644 index 0000000000..5d1b27e910 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.19-9-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js", + + description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden to null (type conversion))", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10; + } + + var Foo = function () { }; + Foo.prototype = [1, 2, 3]; + var obj = new Foo(); + obj.length = null; + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js new file mode 100644 index 0000000000..ebda819701 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.19-9-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js", + + description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden to false (type conversion))", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var Foo = function () { }; + Foo.prototype = [1, 2, 3]; + var obj = new Foo(); + obj.length = false; + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js new file mode 100644 index 0000000000..ac7b3bc6b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.19-9-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js", + + description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var Foo = function () { }; + Foo.prototype = [1, 2, 3]; + var obj = new Foo(); + obj.length = 0; + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js new file mode 100644 index 0000000000..ec6a1b2786 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.19-9-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js", + + description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var Foo = function () { }; + Foo.prototype = [1, 2, 3]; + var obj = new Foo(); + obj.length = '0'; + + var testResult = Array.prototype.map.call(obj, callbackfn); + return testResult.length === 0; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.map); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js new file mode 100644 index 0000000000..2cd3adcd3e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js @@ -0,0 +1,36 @@ +/// 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: "15.4.4.20-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js", + +description: "Array.prototype.filter must exist as a function", + +test: function testcase() { + var f = Array.prototype.filter; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js new file mode 100644 index 0000000000..8c61ad004a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.20-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js", + +description: "Array.prototype.filter.length must be 1", + +test: function testcase() { + if (Array.prototype.filter.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js new file mode 100644 index 0000000000..50e08324a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.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: "15.4.4.20-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js", + + description: "Array.prototype.filter applied to undefined throws a TypeError", + + test: function testcase() { + try { + Array.prototype.filter.call(undefined); // TypeError is thrown if value is undefined + return false; + } catch (ex) { + return ex instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js new file mode 100644 index 0000000000..1262abd388 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js", + + description: "Array.prototype.filter applied to the Math object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return '[object Math]' === Object.prototype.toString.call(obj); + } + + try { + Math.length = 1; + Math[0] = 1; + var newArr = Array.prototype.filter.call(Math, callbackfn); + return newArr[0] === 1; + } finally { + delete Math[0]; + delete Math.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js new file mode 100644 index 0000000000..d6a49dd79e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js", + + description: "Array.prototype.filter applied to Date object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj instanceof Date; + } + + var obj = new Date(); + obj.length = 1; + obj[0] = 1; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr[0] === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js new file mode 100644 index 0000000000..b2b85be782 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js", + + description: "Array.prototype.filter applied to RegExp object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj instanceof RegExp; + } + + var obj = new RegExp(); + obj.length = 2; + obj[1] = true; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr[0] === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js new file mode 100644 index 0000000000..672e94c60f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js", + + description: "Array.prototype.filter applied to the JSON object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return '[object JSON]' === Object.prototype.toString.call(JSON); + } + + try { + JSON.length = 1; + JSON[0] = 1; + var newArr = Array.prototype.filter.call(JSON, callbackfn); + return newArr[0] === 1; + } finally { + delete JSON.length; + delete JSON[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js new file mode 100644 index 0000000000..368ee6e955 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js", + + description: "Array.prototype.filter applied to Error object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj instanceof Error; + } + + var obj = new Error(); + obj.length = 1; + obj[0] = 1; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr[0] === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js new file mode 100644 index 0000000000..03c27ea116 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js", + + description: "Array.prototype.filter applied to the Arguments object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return '[object Arguments]' === Object.prototype.toString.call(obj); + } + + var obj = (function () { + return arguments; + }("a", "b")); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr[0] === "a" && newArr[1] === "b"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js new file mode 100644 index 0000000000..62817fce41 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.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: "15.4.4.20-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js", + + description: "Array.prototype.filter applied to null throws a TypeError", + + test: function testcase() { + try { + Array.prototype.filter.call(null); + return false; + } catch (ex) { + return ex instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js new file mode 100644 index 0000000000..04e51530fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.20-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js", + + description: "Array.prototype.filter applied to boolean primitive", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Boolean; + } + + try { + Boolean.prototype[0] = true; + Boolean.prototype.length = 1; + + var newArr = Array.prototype.filter.call(false, callbackfn); + return newArr[0] === true; + + } finally { + delete Boolean.prototype[0]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js new file mode 100644 index 0000000000..e3976363e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js", + + description: "Array.prototype.filter applied to Boolean Object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj instanceof Boolean; + } + + var obj = new Boolean(true); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr[0] === 11 && newArr[1] === 12; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js new file mode 100644 index 0000000000..bb39cb5efb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js", + + description: "Array.prototype.filter applied to number primitive", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof Number; + } + + try { + Number.prototype[0] = 1; + Number.prototype.length = 1; + + var newArr = Array.prototype.filter.call(2.5, callbackfn); + return newArr[0] === 1; + } finally { + delete Number.prototype[0]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js new file mode 100644 index 0000000000..3b5a09951d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js", + + description: "Array.prototype.filter applied to Number object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj instanceof Number; + } + + var obj = new Number(-128); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr[0] === 11 && newArr[1] === 12; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js new file mode 100644 index 0000000000..a394068608 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.20-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js", + + description: "Array.prototype.filter applied to string primitive", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj instanceof String; + } + + var newArr = Array.prototype.filter.call("abc", callbackfn); + + return newArr[0] === "a"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js new file mode 100644 index 0000000000..d95d9d4ea9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.20-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js", + + description: "Array.prototype.filter applied to String object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return obj instanceof String; + } + + var obj = new String("abc"); + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr[0] === "a"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js new file mode 100644 index 0000000000..14a568f348 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js", + + description: "Array.prototype.filter applied to Function object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj instanceof Function; + } + + var obj = function (a, b) { + return a + b; + }; + obj[0] = 11; + obj[1] = 9; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr[0] === 11 && newArr[1] === 9; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js new file mode 100644 index 0000000000..be1cfe32df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-10-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js", + +description: "Array.prototype.filter doesn't mutate the Array on which it is called on", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + return true; + } + var srcArr = [1,2,3,4,5]; + srcArr.filter(callbackfn); + if(srcArr[0] === 1 && + srcArr[1] === 2 && + srcArr[2] === 3 && + srcArr[3] === 4 && + srcArr[4] === 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js new file mode 100644 index 0000000000..e7f3d1715f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.20-10-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js", + +description: "Array.prototype.filter returns new Array with length equal to number of true returned by callbackfn", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + if(val % 2) + return true; + else + return false; + } + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.filter(callbackfn); + if(resArr.length === 3 && + resArr[0] === 1 && + resArr[1] === 3 && + resArr[2] === 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js new file mode 100644 index 0000000000..59a93aa1ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-10-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js", + +description: "Array.prototype.filter - subclassed array when length is reduced", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 1; + + function cb(){return true;} + var a = f.filter(cb); + + if (Array.isArray(a) && + a.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js new file mode 100644 index 0000000000..7209ebe151 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-10-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js", + +description: "Array.prototype.filter doesn't visit expandos", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + } + var srcArr = [1,2,3,4,5]; + srcArr["i"] = 10; + srcArr[true] = 11; + + var resArr = srcArr.filter(callbackfn); + if(callCnt == 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js new file mode 100644 index 0000000000..13c6220ecc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js", + + description: "Array.prototype.filter applied to Array-like object, 'length' is own data property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: 2 + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js new file mode 100644 index 0000000000..4101cc7424 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.20-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js", + + description: "Array.prototype.filter applied to Array-like object, 'length' is inherited accessor property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var newArr = Array.prototype.filter.call(child, callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js new file mode 100644 index 0000000000..80833cc217 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.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: "15.4.4.20-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js", + + description: "Array.prototype.filter applied to Array-like object, 'length' is own accessor property without a get function", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { + 0: 11, + 1: 12 + }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js new file mode 100644 index 0000000000..304451cc69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.20-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js", + + description: "Array.prototype.filter - 'length' is own accessor property without a get function that overrides an inherited accessor property", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var obj = { 0: 12, 1: 11 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 0 && !accessed; + } finally { + delete Object.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js new file mode 100644 index 0000000000..560eeaacfa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.20-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js", + + description: "Array.prototype.filter applied to the Array-like object that 'length' is inherited accessor property without a get function", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 11; + child[1] = 12; + + var newArr = Array.prototype.filter.call(child, callbackfn); + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js new file mode 100644 index 0000000000..8ad7d6952f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js", + + description: "Array.prototype.filter applied to the Array-like object that 'length property doesn't exist", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 11, 1: 12 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js new file mode 100644 index 0000000000..ca03f9e09a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.20-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js", + + description: "Array.prototype.filter - 'length' is property of the global object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 12; + fnGlobalObject()[1] = 11; + fnGlobalObject()[2] = 9; + fnGlobalObject().length = 2; + var newArr = Array.prototype.filter.call(fnGlobalObject(), callbackfn); + return newArr.length === 2; + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js new file mode 100644 index 0000000000..088f289648 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js", + + description: "Array.prototype.filter applied to the Arguments object, which implements its own property get method", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var func = function (a, b) { + var newArr = Array.prototype.filter.call(arguments, callbackfn); + return newArr.length === 2; + }; + + return func(12, 11); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js new file mode 100644 index 0000000000..e5cff1f2a3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js", + + description: "Array.prototype.filter applied to String object, which implements its own property get method", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 3; + } + + var str = new String("012"); + + var newArr = Array.prototype.filter.call(str, callbackfn); + return newArr.length === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js new file mode 100644 index 0000000000..e0a5173a00 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js", + + description: "Array.prototype.filter applied to Function object, which implements its own property get method", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var fun = function (a, b) { + return a + b; + }; + fun[0] = 12; + fun[1] = 11; + fun[2] = 9; + + var newArr = Array.prototype.filter.call(fun, callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js new file mode 100644 index 0000000000..f8ab2a9430 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.20-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js", + + description: "Array.prototype.filter - 'length' is own data property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var newArr = [12, 11].filter(callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js new file mode 100644 index 0000000000..a0956ac39d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.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: "15.4.4.20-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js", + + description: "Array.prototype.filter applied to Array-like object, 'length' is an own data property that overrides an inherited data property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var newArr = Array.prototype.filter.call(child, callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js new file mode 100644 index 0000000000..d0e492526a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js", + + description: "Array.prototype.filter - 'length' is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var arrProtoLen; + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + var newArr = [12, 11].filter(callbackfn); + return newArr.length === 2; + } finally { + Array.prototype.length = arrProtoLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js new file mode 100644 index 0000000000..edbcf6c800 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.20-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js", + + description: "Array.prototype.filter to Array-like object, 'length' is an own data property that overrides an inherited accessor property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var newArr = Array.prototype.filter.call(child, callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js new file mode 100644 index 0000000000..9d69b390ce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.20-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js", + + description: "Array.prototype.filter applied to Array-like object, 'length' is an inherited data property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var proto = { length: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var newArr = Array.prototype.filter.call(child, callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js new file mode 100644 index 0000000000..2580829587 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.20-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js", + + description: "Array.prototype.filter applied to Array-like object, 'length' is an own accessor property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + obj[0] = 12; + obj[1] = 11; + obj[2] = 9; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js new file mode 100644 index 0000000000..95bb92502f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.20-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js", + + description: "Array.prototype.filter applied to Array-like object, 'length' is own accessor property that overrides an inherited data property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var newArr = Array.prototype.filter.call(child, callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js new file mode 100644 index 0000000000..634a311b15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.20-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js", + + description: "Array.prototype.filter applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return obj.length === 2; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + var newArr = Array.prototype.filter.call(child, callbackfn); + return newArr.length === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js new file mode 100644 index 0000000000..58d1aeaf3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js", + + description: "Array.prototype.filter - value of 'length' is undefined", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 0, 1: 1, length: undefined }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js new file mode 100644 index 0000000000..ebcbafe283 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js", + + description: "Array.prototype.filter - value of 'length' is a number (value is NaN)", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 9, length: NaN }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js new file mode 100644 index 0000000000..07e7f170da --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js", + + description: "Array.prototype.filter - 'length' is a string containing a positive number", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 1: 11, 2: 9, length: "2" }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js new file mode 100644 index 0000000000..8e4527cb13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js", + + description: "Array.prototype.filter - 'length' is a string containing a negative number", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 1: 11, 2: 9, length: "-4294967294" }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js new file mode 100644 index 0000000000..81d68dc243 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js", + + description: "Array.prototype.filter - 'length' is a string containing a decimal number", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 1: 11, 2: 9, length: "2.5" }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js new file mode 100644 index 0000000000..31409b1294 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.20-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js", + + description: "Array.prototype.filter - 'length' is a string containing +/-Infinity", + + test: function testcase() { + + var accessed1 = false; + var accessed2 = false; + var accessed3 = false; + + function callbackfn1(val, idx, obj) { + accessed1 = true; + return true; + } + + function callbackfn2(val, idx, obj) { + accessed2 = true; + return true; + } + + function callbackfn3(val, idx, obj) { + accessed3 = true; + return true; + } + + var obj1 = { 0: 9, length: "Infinity" }; + var obj2 = { 0: 9, length: "-Infinity" }; + var obj3 = { 0: 9, length: "+Infinity" }; + + var newArr1 = Array.prototype.filter.call(obj1, callbackfn1); + var newArr2 = Array.prototype.filter.call(obj2, callbackfn2); + var newArr3 = Array.prototype.filter.call(obj3, callbackfn3); + + return !accessed1 && newArr1.length === 0 && + !accessed2 && newArr2.length === 0 && + !accessed3 && newArr3.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js new file mode 100644 index 0000000000..020ed5e2b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js", + + description: "Array.prototype.filter - 'length' is a string containing an exponential number", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 1: 11, 2: 9, length: "2E0" }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js new file mode 100644 index 0000000000..572a1b6114 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js", + + description: "Array.prototype.filter - 'length' is a string containing a hex number", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 1: 11, 2: 9, length: "0x0002" }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js new file mode 100644 index 0000000000..a3d4d10859 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js", + + description: "Array.prototype.filter - 'length' is a string containing a number with leading zeros", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 1: 11, 2: 9, length: "0002.00" }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js new file mode 100644 index 0000000000..d891bc53d4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js", + + description: "Array.prototype.filter - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 9, length: "asdf!_" }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return !accessed && newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js new file mode 100644 index 0000000000..ba4183b548 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.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: "15.4.4.20-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js", + + description: "Array.prototype.filter - value of 'length' is an Object which has an own toString method.", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { + 1: 11, + 2: 9, + length: { + toString: function () { + return '2'; + } + } + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js new file mode 100644 index 0000000000..2146013c5d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js", + + description: "Array.prototype.filter applied on an Array-like object if 'length' is 1 (length overridden to true(type conversion))", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, 1: 9, length: true }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js new file mode 100644 index 0000000000..8b721ceccd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.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: "15.4.4.20-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js", + + description: "Array.prototype.filter - value of 'length' is an Object which has an own valueOf method.", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { + 1: 11, + 2: 9, + length: { + valueOf: function () { + return 2; + } + } + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js new file mode 100644 index 0000000000..33add2d83a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.20-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js", + + description: "Array.prototype.filter - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + var firstStepOccured = false; + var secondStepOccured = false; + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { + 1: 11, + 2: 9, + length: { + valueOf: function () { + firstStepOccured = true; + return {}; + }, + toString: function () { + secondStepOccured = true; + return '2'; + } + } + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11 && firstStepOccured && secondStepOccured; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js new file mode 100644 index 0000000000..b67f78f6ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.20-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js", + + description: "Array.prototype.filter throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var accessed = false; + var firstStepOccured = false; + var secondStepOccured = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { + 1: 11, + 2: 12, + + length: { + valueOf: function () { + firstStepOccured = true; + return {}; + }, + toString: function () { + secondStepOccured = true; + return {}; + } + } + }; + + try { + Array.prototype.filter.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof TypeError) && !accessed && firstStepOccured && secondStepOccured; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js new file mode 100644 index 0000000000..de84a00e77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.20-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js", + + description: "Array.prototype.filter uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + var valueOfAccessed = false; + var toStringAccessed = false; + + function callbackfn(val, idx, obj) { + return true; + } + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + child.toString = function () { + toStringAccessed = true; + return '1'; + }; + + var obj = { + 1: 11, + 2: 9, + length: child + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11 && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js new file mode 100644 index 0000000000..096b3e9eb8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js", + + description: "Array.prototype.filter - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { + 1: 11, + 2: 9, + length: 2.685 + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js new file mode 100644 index 0000000000..73edaa0ffd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js", + + description: "Array.prototype.filter - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { + 1: 11, + 2: 9, + length: -4294967294.5 + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js new file mode 100644 index 0000000000..95aa4689e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js", + + description: "Array.prototype.filter - value of 'length' is boundary value (2^32)", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { + 0: 12, + length: 4294967296 + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return !accessed && newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js new file mode 100644 index 0000000000..9f89406192 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js", + + description: "Array.prototype.filter - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { + 0: 11, + 1: 9, + length: 4294967297 + }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js new file mode 100644 index 0000000000..f3fcaae4f7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js", + + description: "Array.prototype.filter - value of 'length' is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 11, length: 0 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js new file mode 100644 index 0000000000..4050cd66ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js", + + description: "Array.prototype.filter - value of 'length' is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 11, length: +0 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js new file mode 100644 index 0000000000..75aecd130b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js", + + description: "Array.prototype.filter - value of 'length' is a number (value is -0)", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 11, length: -0 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js new file mode 100644 index 0000000000..dd124dac29 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js", + + description: "Array.prototype.filter - value of 'length' is a number (value is positive)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 1: 11, 2: 9, length: 2 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js new file mode 100644 index 0000000000..9cb69bda4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.20-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js", + + description: "Array.prototype.filter - value of 'length' is a number (value is negative)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 1: 11, 2: 9, length: -4294967294 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js new file mode 100644 index 0000000000..de114c7c66 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js", + + description: "Array.prototype.filter - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 9, length: Infinity }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js new file mode 100644 index 0000000000..cc743b5b09 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js", + + description: "Array.prototype.filter - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + accessed = true; + return true; + } + + var obj = { 0: 9, length: -Infinity }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 0 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js new file mode 100644 index 0000000000..28717ed9ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js", + +description: "Array.prototype.filter throws TypeError if callbackfn is undefined", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.filter(); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js new file mode 100644 index 0000000000..0b061ac2ca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.20-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js", + + description: "Array.prototype.filter - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.filter.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js new file mode 100644 index 0000000000..1b99c9f4fc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.20-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js", + + description: "Array.prototype.filter - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.filter.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js new file mode 100644 index 0000000000..c6f00aef13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-4-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js", + + description: "Array.prototype.filter - 'callbackfn' is a function", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 1) { + return val === 9; + } + return false; + } + + var newArr = [11, 9].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 9; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js new file mode 100644 index 0000000000..fc1966397c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.20-4-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js", + + description: "Array.prototype.filter - calling with no callbackfn is the same as passing undefined for callbackfn", + + test: function testcase() { + var obj = { 10: 10 }; + var lengthAccessed = false; + var loopAccessed = false; + Object.defineProperty(obj, "length", { + get: function () { + lengthAccessed = true; + return 20; + }, + configurable: true + }); + Object.defineProperty(obj, "0", { + get: function () { + loopAccessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.filter.call(obj); + return false; + } catch (ex) { + return (ex instanceof TypeError) && lengthAccessed && !loopAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js new file mode 100644 index 0000000000..e2c533c73a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-4-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js", + +description: "Array.prototype.filter throws ReferenceError if callbackfn is unreferenced", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.filter(foo); + } + catch(e) { + if(e instanceof ReferenceError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js new file mode 100644 index 0000000000..ccfa7b5037 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js", + +description: "Array.prototype.filter throws TypeError if callbackfn is null", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.filter(null); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js new file mode 100644 index 0000000000..4711f9e7d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js", + +description: "Array.prototype.filter throws TypeError if callbackfn is boolean", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.filter(true); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js new file mode 100644 index 0000000000..d590aa28df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js", + +description: "Array.prototype.filter throws TypeError if callbackfn is number", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.filter(5); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js new file mode 100644 index 0000000000..e17627a1de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js", + +description: "Array.prototype.filter throws TypeError if callbackfn is string", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.filter("abc"); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js new file mode 100644 index 0000000000..c7c878d4aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js", + +description: "Array.prototype.filter throws TypeError if callbackfn is Object without [[Call]] internal method", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.filter(new Object()); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js new file mode 100644 index 0000000000..da6904ba54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.20-4-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js", + + description: "Array.prototype.filter - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.filter.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js new file mode 100644 index 0000000000..0c55aec41e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.20-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js", + + description: "Array.prototype.filter - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.filter.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js new file mode 100644 index 0000000000..950a570153 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.20-5-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js", + + description: "Array.prototype.filter - thisArg is passed", + + test: function testcase() { + this._15_4_4_20_5_1 = false; + var _15_4_4_20_5_1 = true; + + function callbackfn(val, idx, obj) { + return this._15_4_4_20_5_1; + } + var srcArr = [1]; + var resArr = srcArr.filter(callbackfn); + return resArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js new file mode 100644 index 0000000000..69291cbfeb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js", + + description: "Array.prototype.filter - Array Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objArray = new Array(10); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objArray; + } + + + var newArr = [11].filter(callbackfn, objArray); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js new file mode 100644 index 0000000000..66c96e372a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js", + + description: "Array.prototype.filter - String Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objString = new String(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objString; + } + + var newArr = [11].filter(callbackfn, objString); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js new file mode 100644 index 0000000000..cc8833f32a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js", + + description: "Array.prototype.filter - Boolean Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objBoolean = new Boolean(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objBoolean; + } + + var newArr = [11].filter(callbackfn, objBoolean); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js new file mode 100644 index 0000000000..02d516ef71 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js", + + description: "Array.prototype.filter - Number Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objNumber = new Number(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objNumber; + } + + var newArr = [11].filter(callbackfn, objNumber); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js new file mode 100644 index 0000000000..b9565fa49d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-5-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js", + + description: "Array.prototype.filter - the Math object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === Math; + } + + var newArr = [11].filter(callbackfn, Math); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js new file mode 100644 index 0000000000..c86ef78d5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-5-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js", + + description: "Array.prototype.filter - Date Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + var objDate = new Date(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objDate; + } + + var newArr = [11].filter(callbackfn, objDate); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js new file mode 100644 index 0000000000..73912fa2eb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-5-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js", + + description: "Array.prototype.filter - RegExp Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + var objRegExp = new RegExp(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objRegExp; + } + + var newArr = [11].filter(callbackfn, objRegExp); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js new file mode 100644 index 0000000000..1c6a4f00f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-5-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js", + + description: "Array.prototype.filter - the JSON object can be used as thisArg", + + test: function testcase() { + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === JSON; + } + + var newArr = [11].filter(callbackfn, JSON); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js new file mode 100644 index 0000000000..2cb6504112 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-5-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js", + + description: "Array.prototype.filter - Error Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objError = new RangeError(); + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objError; + } + + var newArr = [11].filter(callbackfn, objError); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js new file mode 100644 index 0000000000..a50dedaf9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.20-5-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js", + + description: "Array.prototype.filter - the Arguments object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var arg; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === arg; + } + + (function fun() { + arg = arguments; + }(1, 2, 3)); + + var newArr = [11].filter(callbackfn, arg); + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js new file mode 100644 index 0000000000..78656e7714 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js", + +description: "Array.prototype.filter - thisArg is Object", + +test: function testcase() { + var res = false; + var o = new Object(); + o.res = true; + function callbackfn(val, idx, obj) + { + return this.res; + } + + var srcArr = [1]; + var resArr = srcArr.filter(callbackfn,o); + if( resArr.length === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js new file mode 100644 index 0000000000..b7bf5f6980 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-5-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js", + + description: "Array.prototype.filter - the global object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === fnGlobalObject(); + } + + var newArr = [11].filter(callbackfn, fnGlobalObject()); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js new file mode 100644 index 0000000000..7cdca584cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-5-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js", + + description: "Array.prototype.filter - boolean primitive can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this.valueOf() === false; + } + + var newArr = [11].filter(callbackfn, false); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js new file mode 100644 index 0000000000..da7ea3615f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-5-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js", + + description: "Array.prototype.filter - number primitive can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this.valueOf() === 101; + } + + var newArr = [11].filter(callbackfn, 101); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js new file mode 100644 index 0000000000..e0fc72a383 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-5-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js", + + description: "Array.prototype.filter - string primitive can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this.valueOf() === "abc"; + } + + var newArr = [11].filter(callbackfn, "abc"); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js new file mode 100644 index 0000000000..632087e368 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.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: "15.4.4.20-5-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js", + + description: "Array.prototype.filter - Array.isArray(arg) returns true when arg is the returned array", + + test: function testcase() { + + var newArr = [11].filter(function () { }); + + return Array.isArray(newArr); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Array.isArray); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js new file mode 100644 index 0000000000..7418846b1e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.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: "15.4.4.20-5-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js", + + description: "Array.prototype.filter - the returned array is instanceof Array", + + test: function testcase() { + + var newArr = [11].filter(function () { }); + + return newArr instanceof Array; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js new file mode 100644 index 0000000000..2fbccb8123 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.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: "15.4.4.20-5-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js", + + description: "Array.prototype.filter - returns an array whose length is 0", + + test: function testcase() { + + var newArr = [11].filter(function () { }); + + return newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js new file mode 100644 index 0000000000..af94bee1dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js", + +description: "Array.prototype.filter - thisArg is Array", + +test: function testcase() { + var res = false; + var a = new Array(); + a.res = true; + function callbackfn(val, idx, obj) + { + return this.res; + } + + var srcArr = [1]; + var resArr = srcArr.filter(callbackfn,a); + if( resArr.length === 1) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js new file mode 100644 index 0000000000..94bb4365d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-5-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js", + + description: "Array.prototype.filter - thisArg not passed", + + test: function testcase() { + function innerObj() { + this._15_4_4_20_5_30 = true; + var _15_4_4_20_5_30 = false; + + function callbackfn(val, idx, obj) { + return this._15_4_4_20_5_30; + } + var srcArr = [1]; + var resArr = srcArr.filter(callbackfn); + this.retVal = resArr.length === 0; + } + return new innerObj().retVal; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js new file mode 100644 index 0000000000..ccb7754172 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js", + +description: "Array.prototype.filter - thisArg is object from object template(prototype)", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + foo.prototype.res = true; + var f = new foo(); + + var srcArr = [1]; + var resArr = srcArr.filter(callbackfn,f); + if( resArr.length === 1) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js new file mode 100644 index 0000000000..3c2641571d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js", + +description: "Array.prototype.filter - thisArg is object from object template", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + var f = new foo(); + f.res = true; + + var srcArr = [1]; + var resArr = srcArr.filter(callbackfn,f); + if( resArr.length === 1) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js new file mode 100644 index 0000000000..5b68bf3f99 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-5-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js", + +description: "Array.prototype.filter - thisArg is function", + +test: function testcase() { + var res = false; + function callbackfn(val, idx, obj) + { + return this.res; + } + + function foo(){} + foo.res = true; + + var srcArr = [1]; + var resArr = srcArr.filter(callbackfn,foo); + if( resArr.length === 1) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js new file mode 100644 index 0000000000..9e73946f6d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-5-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js", + + description: "Array.prototype.filter - built-in functions can be used as thisArg", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === eval; + } + + var newArr = [11].filter(callbackfn, eval); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js new file mode 100644 index 0000000000..176a979248 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js", + + description: "Array.prototype.filter - Function Object can be used as thisArg", + + test: function testcase() { + + var accessed = false; + var objFunction = function () { }; + + function callbackfn(val, idx, obj) { + accessed = true; + return this === objFunction; + } + + var newArr = [11].filter(callbackfn, objFunction); + + return newArr[0] === 11 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js new file mode 100644 index 0000000000..92dbd27536 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.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: "15.4.4.20-6-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js", + +description: "Array.prototype.filter returns an empty array if 'length' is 0 (empty array)", + +test: function testcase() { + function cb(){} + var a = [].filter(cb); + if (Array.isArray(a) && + a.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js new file mode 100644 index 0000000000..f6600fe28a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-6-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js", + +description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to null (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = null; + + function cb(){} + var a = f.filter(cb); + + if (Array.isArray(a) && + a.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js new file mode 100644 index 0000000000..48348aedb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-6-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js", + +description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to false (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = false; + + function cb(){} + var a = f.filter(cb); + + if (Array.isArray(a) && + a.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js new file mode 100644 index 0000000000..fd9c049041 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-6-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js", + +description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + function cb(){} + var a = f.filter(cb); + + if (Array.isArray(a) && + a.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js new file mode 100644 index 0000000000..360661f951 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-6-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js", + +description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = '0'; + + function cb(){} + var a = f.filter(cb); + + if (Array.isArray(a) && + a.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js new file mode 100644 index 0000000000..33a84520b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-6-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js", + +description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { valueOf: function () { return 0;}}; + f.length = o; + + function cb(){} + var a = f.filter(cb); + + if (Array.isArray(a) && + a.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js new file mode 100644 index 0000000000..47c160c3ab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.20-6-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js", + +description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + function cb(){} + var a = f.filter(cb); + + if (Array.isArray(a) && + a.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js new file mode 100644 index 0000000000..ca77c27f0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.20-6-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js", + +description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with []", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + var a = f.filter(cb); + + if (Array.isArray(a) && + a.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js new file mode 100644 index 0000000000..dfff355125 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.20-9-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js", + + description: "Array.prototype.filter doesn't consider new elements added to array after it is called", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + srcArr[2] = 3; + srcArr[5] = 6; + return true; + } + + var srcArr = [1, 2, , 4, 5]; + var resArr = srcArr.filter(callbackfn); + return resArr.length === 5; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js new file mode 100644 index 0000000000..de334c0f5f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-9-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js", + +description: "Array.prototype.filter considers new value of elements in array after it is called", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + srcArr[2] = -1; + srcArr[4] = -1; + if(val > 0) + return true; + else + return false; + } + + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.filter(callbackfn); + if(resArr.length === 3 && resArr[0] === 1 && resArr[2] === 4) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js new file mode 100644 index 0000000000..052ed516cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-9-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js", + +description: "Array.prototype.filter doesn't visit deleted elements in array after the call", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + delete srcArr[2]; + delete srcArr[4]; + if(val > 0) + return true; + else + return false; + } + + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.filter(callbackfn); + if(resArr.length === 3 && resArr[0] === 1 && resArr[2] === 4 ) // two elements deleted + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js new file mode 100644 index 0000000000..a737145d9e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-9-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js", + +description: "Array.prototype.filter doesn't visit deleted elements when Array.length is decreased", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + srcArr.length = 2; + return true; + } + + var srcArr = [1,2,3,4,6]; + var resArr = srcArr.filter(callbackfn); + if(resArr.length === 2 ) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js new file mode 100644 index 0000000000..352f9c8768 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-9-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js", + +description: "Array.prototype.filter doesn't consider newly added elements in sparse array", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + srcArr[1000] = 3; + return true; + } + + var srcArr = new Array(10); + srcArr[1] = 1; + srcArr[2] = 2; + var resArr = srcArr.filter(callbackfn); + if( resArr.length === 2) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js new file mode 100644 index 0000000000..c321d68291 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.20-9-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js", + +description: "Array.prototype.filter visits deleted element in array after the call when same index is also present in prototype", + +test: function testcase() { + + function callbackfn(val, idx, obj) + { + delete srcArr[2]; + delete srcArr[4]; + if(val > 0) + return true; + else + return false; + } + + Array.prototype[4] = 5; + var srcArr = [1,2,3,4,5]; + var resArr = srcArr.filter(callbackfn); + delete Array.prototype[4]; + if(resArr.length === 4 && resArr[0] === 1 && resArr[3] == 5) // only one element deleted + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js new file mode 100644 index 0000000000..c1b3fb4be8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js", + + description: "Array.prototype.filter stops calling callbackfn once the array is deleted during the call", + + test: function testcase() { + var o = new Object(); + o.srcArr = [1, 2, 3, 4, 5]; + + function callbackfn(val, idx, obj) { + delete o.srcArr; + if (val > 0) + return true; + else + return false; + } + + var resArr = o.srcArr.filter(callbackfn); + return resArr.length === 5 && typeof o.srcArr === "undefined"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js new file mode 100644 index 0000000000..955c05996c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-9-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js", + + description: "Array.prototype.filter - no observable effects occur if len is 0", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val > 10; + } + + var obj = { 0: 11, 1: 12, length: 0 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return accessed === false && obj.length === 0 && newArr.length === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js new file mode 100644 index 0000000000..1ab1f4b7ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.20-9-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js", + + description: "Array.prototype.filter - modifications to length don't change number of iterations", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return true; + } + + var obj = { 1: 12, 2: 9, length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + obj.length = 3; + return 11; + }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 2 && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js new file mode 100644 index 0000000000..affc692370 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-b-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js", + +description: "Array.prototype.filter - callbackfn not called for indexes never been assigned values", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(val, idx, obj) + { + callCnt++; + return false; + } + + var srcArr = new Array(10); + srcArr[1] = undefined; //explicitly assigning a value + var resArr = srcArr.filter(callbackfn); + if( resArr.length === 0 && callCnt === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js new file mode 100644 index 0000000000..3904cdbfb3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.20-9-b-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js", + + description: "Array.prototype.filter - deleting property of prototype causes prototype index property not to be visited on an Array-like Object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + var obj = { 2: 2, length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete Object.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 2 && newArr[1] !== 1; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js new file mode 100644 index 0000000000..3968a7fe6d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.20-9-b-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js", + + description: "Array.prototype.filter - deleting property of prototype causes prototype index property not to be visited on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + var newArr = arr.filter(callbackfn); + return newArr.length === 2 && newArr[1] !== 1; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js new file mode 100644 index 0000000000..d8851ca87b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.20-9-b-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js", + + description: "Array.prototype.filter - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return true; + } + var obj = { 0: 0, 1: 111, 2: 2, length: 10 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 3 && newArr[1] === 1; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js new file mode 100644 index 0000000000..e06786add0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.20-9-b-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js", + + description: "Array.prototype.filter - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val < 3 ? true : false; + } + var arr = [0, 111, 2]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + var newArr = arr.filter(callbackfn); + + return newArr.length === 3 && newArr[1] === 1; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js new file mode 100644 index 0000000000..aadcbbd642 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.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: "15.4.4.20-9-b-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js", + + description: "Array.prototype.filter - decreasing length of array causes index property not to be visited", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + var arr = [0, 1, 2, "last"]; + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 3; + return 0; + }, + configurable: true + }); + + var newArr = arr.filter(callbackfn); + + + return newArr.length === 3 && newArr[2] === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js new file mode 100644 index 0000000000..af075d4242 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.20-9-b-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js", + + description: "Array.prototype.filter - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return true; + } + var arr = [0, 1, 2]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + var newArr = arr.filter(callbackfn); + + return newArr.length === 3 && newArr[2] === "prototype"; + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js new file mode 100644 index 0000000000..aee2c8451e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.20-9-b-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js", + + description: "Array.prototype.filter - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var arr = [0, 1, 2]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "1", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + var newArr = arr.filter(callbackfn); + + return newArr.length === 3 && newArr[2] === "unconfigurable"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js new file mode 100644 index 0000000000..425ad6eee9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.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: "15.4.4.20-9-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js", + + description: "Array.prototype.filter - added properties in step 2 are visible here", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + obj[2] = "length"; + return 3; + }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === "length"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js new file mode 100644 index 0000000000..1d6c461441 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.20-9-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js", + + description: "Array.prototype.filter - deleted properties in step 2 are visible here", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + var obj = { 2: 6.99, 8: 19 }; + + Object.defineProperty(obj, "length", { + get: function () { + delete obj[2]; + return 10; + }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] !== 6.99; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js new file mode 100644 index 0000000000..8664574e46 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.20-9-b-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js", + + description: "Array.prototype.filter - properties added into own object after current position are visited on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 2 && newArr[1] === 6.99; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js new file mode 100644 index 0000000000..5199769e2e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.20-9-b-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js", + + description: "Array.prototype.filter - properties added into own object after current position are visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return true; + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + var newArr = arr.filter(callbackfn); + + return newArr.length === 3 && newArr[1] === 6.99; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js new file mode 100644 index 0000000000..a436176f06 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.20-9-b-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js", + + description: "Array.prototype.filter - properties can be added to prototype after current position are visited on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return true; + } + var obj = { length: 2 }; + + try { + Object.defineProperty(obj, "0", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 2 && Array[1] === 6.99; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js new file mode 100644 index 0000000000..78d33d2f60 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.20-9-b-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js", + + description: "Array.prototype.filter - properties can be added to prototype after current position are visited on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return true; + } + var arr = [0, , 2]; + + try { + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + var newArr = arr.filter(callbackfn); + + return newArr.length === 3 && newArr[1] === 6.99; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js new file mode 100644 index 0000000000..6eaa5dcbca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.20-9-b-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js", + + description: "Array.prototype.filter - deleting own property causes index property not to be visited on an Array-like object", + + test: function testcase() { + var accessed = false; + var obj = { length: 2 }; + + function callbackfn(val, idx, o) { + accessed = true; + return true; + } + + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js new file mode 100644 index 0000000000..34a5705169 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.20-9-b-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js", + + description: "Array.prototype.filter - deleting own property causes index property not to be visited on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + var arr = [1, 2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + var newArr = arr.filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js new file mode 100644 index 0000000000..c8ee028f49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-9-c-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js", + + description: "Array.prototype.filter - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var kValue = {}; + function callbackfn(val, idx, obj) { + return (idx === 5) && (val === kValue); + } + + var obj = { 5: kValue, length: 100 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === kValue; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js new file mode 100644 index 0000000000..690cb586bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.20-9-c-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js", + + description: "Array.prototype.filter - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return idx === 2 && val === 12; + } + + var arr = []; + + Object.defineProperty(arr, "2", { + get: function () { + return 12; + }, + configurable: true + }); + var newArr = arr.filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 12; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js new file mode 100644 index 0000000000..43ae32da56 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.20-9-c-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js", + + description: "Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return idx === 0 && val === 11; + } + + var proto = { 0: 5, 1: 6 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Object.defineProperty(child, "0", { + get: function () { + return 11; + }, + configurable: true + }); + var newArr = Array.prototype.filter.call(child, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js new file mode 100644 index 0000000000..6d8f1e6e04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.20-9-c-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js", + + description: " Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val === 111 && idx === 0; + } + + var arr = []; + try { + Array.prototype[0] = 10; + + Object.defineProperty(arr, "0", { + get: function () { + return 111; + }, + configurable: true + }); + var newArr = arr.filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 111; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js new file mode 100644 index 0000000000..ba6073bfee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.20-9-c-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js", + + description: "Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return idx === 1 && val === 12; + } + + var proto = {}; + + Object.defineProperty(proto, "1", { + get: function () { + return 6; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + Object.defineProperty(child, "1", { + get: function () { + return 12; + }, + configurable: true + }); + var newArr = Array.prototype.filter.call(child, callbackfn); + + return newArr.length === 1 && newArr[0] === 12; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js new file mode 100644 index 0000000000..dee4890d02 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.20-9-c-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js", + + description: " Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return idx === 0 && val === 11; + } + + var arr = []; + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 5; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + return 11; + }, + configurable: true + }); + var newArr = arr.filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js new file mode 100644 index 0000000000..298c5e6996 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.20-9-c-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js", + + description: "Array.prototype.filter - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val === 11 && idx === 1; + } + + var proto = {}; + + Object.defineProperty(proto, "1", { + get: function () { + return 11; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 20; + var newArr = Array.prototype.filter.call(child, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js new file mode 100644 index 0000000000..02fb44be6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.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: "15.4.4.20-9-c-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js", + + description: "Array.prototype.filter - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return idx === 0 && val === 11; + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 11; + }, + configurable: true + }); + var newArr = [, , , ].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js new file mode 100644 index 0000000000..e9a9403088 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-9-c-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js", + + description: "Array.prototype.filter - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return undefined === val && idx === 1; + } + + var obj = { length: 2 }; + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === undefined; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js new file mode 100644 index 0000000000..fe04cedebc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.20-9-c-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js", + + description: "Array.prototype.filter - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return undefined === val && idx === 0; + } + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + var newArr = arr.filter(callbackfn); + + return newArr.length === 1 && newArr[0] === undefined; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js new file mode 100644 index 0000000000..eb4b2f10e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.20-9-c-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js", + + description: "Array.prototype.filter - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return undefined === val && idx === 1; + } + + var obj = { length: 2 }; + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + try { + Object.prototype[1] = 10; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === undefined; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js new file mode 100644 index 0000000000..a7226bd08c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-c-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js", + + description: "Array.prototype.filter - element to be retrieved is own data property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } + } + + var newArr = [11].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js new file mode 100644 index 0000000000..f8865a404c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.20-9-c-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js", + + description: "Array.prototype.filter - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return undefined === val && idx === 0; + } + + var arr = []; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + try { + Array.prototype[0] = 100; + var newArr = arr.filter(callbackfn); + + return newArr.length === 1 && newArr[0] === undefined; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js new file mode 100644 index 0000000000..6f948e3e51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.20-9-c-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js", + + description: "Array.prototype.filter - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val === undefined && idx === 1; + } + + var proto = {}; + Object.defineProperty(proto, "1", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + var newArr = Array.prototype.filter.call(child, callbackfn); + + return newArr.length === 1 && newArr[0] === undefined; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js new file mode 100644 index 0000000000..15c542a1f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.20-9-c-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js", + + description: "Array.prototype.filter - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return undefined === val && idx === 0; + } + + try { + Object.defineProperty(Array.prototype, "0", { + set: function () { }, + configurable: true + }); + var newArr = [, ].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === undefined; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js new file mode 100644 index 0000000000..8c6e1842b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-9-c-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js", + + description: "Array.prototype.filter - This object is the global object which contains index property", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return idx === 0 && val === 11; + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 11; + fnGlobalObject().length = 1; + var newArr = Array.prototype.filter.call(fnGlobalObject(), callbackfn); + return newArr.length === 1 && newArr[0] === 11; + } finally { + delete fnGlobalObject()[0]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js new file mode 100644 index 0000000000..e7e7f48156 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-9-c-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js", + + description: "Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val === 11 && idx === 0; + } + + var func = function (a, b) { + return Array.prototype.filter.call(arguments, callbackfn); + }; + + var newArr = func(11); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js new file mode 100644 index 0000000000..eb4fdf6f08 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.20-9-c-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js", + + description: "Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } else if (idx === 1) { + return val === 9; + } else { + return false; + } + } + + var func = function (a, b) { + return Array.prototype.filter.call(arguments, callbackfn); + }; + var newArr = func(11, 9); + + return newArr.length === 2 && newArr[0] === 11 && + newArr[1] === 9; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js new file mode 100644 index 0000000000..ae67db6e02 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.20-9-c-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js", + + description: "Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } else if (idx === 1) { + return val === 12; + } else if (idx === 2) { + return val === 9; + } else { + return false; + } + } + + var func = function (a, b) { + return Array.prototype.filter.call(arguments, callbackfn); + }; + var newArr = func(11, 12, 9); + + return newArr.length === 3 && newArr[0] === 11 && + newArr[1] === 12 && newArr[2] === 9; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js new file mode 100644 index 0000000000..703582c068 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.20-9-c-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js", + + description: "Array.prototype.filter - element changed by getter on previous iterations is observed on an Array", + + test: function testcase() { + + var preIterVisible = false; + var arr = []; + + function callbackfn(val, idx, obj) { + return idx === 1 && val === 9; + } + + Object.defineProperty(arr, "0", { + get: function () { + preIterVisible = true; + return 11; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return 9; + } else { + return 11; + } + }, + configurable: true + }); + var newArr = arr.filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 9; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js new file mode 100644 index 0000000000..e3188aaf0b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.20-9-c-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js", + + description: "Array.prototype.filter - element changed by getter on previous iterations is observed on an Array-like object", + + test: function testcase() { + function callbackfn(val, idx, obj) { + return val === 9 && idx === 1; + } + + var preIterVisible = false; + var obj = { length: 2 }; + + Object.defineProperty(obj, "0", { + get: function () { + preIterVisible = true; + return 11; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return 9; + } else { + return 13; + } + }, + configurable: true + }); + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 9; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js new file mode 100644 index 0000000000..a81bb26f2e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.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: "15.4.4.20-9-c-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js", + + description: "Array.prototype.filter - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return (idx === 5) && (val === "abc"); + } + + var proto = { 0: 11, 5: 100 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[5] = "abc"; + child.length = 10; + + var newArr = Array.prototype.filter.call(child, callbackfn); + + return newArr.length === 1 && newArr[0] === "abc"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js new file mode 100644 index 0000000000..be44381bfc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.20-9-c-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js", + + description: "Array.prototype.filter - unnhandled exceptions happened in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + return true; + } + + var obj = { 0: 11, 5: 10, 10: 8, length: 20 }; + Object.defineProperty(obj, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + Array.prototype.filter.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js new file mode 100644 index 0000000000..bf937547c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.20-9-c-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js", + + description: "Array.prototype.filter - unnhandled exceptions happened in getter terminate iteration on an Array", + + test: function testcase() { + + var accessed = false; + function callbackfn(val, idx, obj) { + if (idx > 1) { + accessed = true; + } + return true; + } + + var arr = []; + arr[5] = 10; + arr[10] = 100; + + Object.defineProperty(arr, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + arr.filter(callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js new file mode 100644 index 0000000000..0d28d54998 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-9-c-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js", + + description: "Array.prototype.filter - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return (idx === 0) && (val === 12); + } + + try { + Array.prototype[0] = 11; + var newArr = [12].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 12; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js new file mode 100644 index 0000000000..9e6a50c711 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.20-9-c-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js", + + description: "Array.prototype.filter - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return idx === 0 && val === 11; + } + + var proto = {}; + + Object.defineProperty(proto, "0", { + get: function () { + return 5; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + Object.defineProperty(child, "0", { + value: 11, + configurable: true + }); + child[1] = 12; + + var newArr = Array.prototype.filter.call(child, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js new file mode 100644 index 0000000000..21237496d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.20-9-c-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js", + + description: "Array.prototype.filter - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val === 11; + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 9; + }, + configurable: true + }); + var newArr = [11].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js new file mode 100644 index 0000000000..1557db5610 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.20-9-c-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js", + + description: "Array.prototype.filter - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var kValue = 'abc'; + + function callbackfn(val, idx, obj) { + return (idx === 5) && (val === kValue); + } + + var proto = { 5: kValue }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 10; + + var newArr = Array.prototype.filter.call(child, callbackfn); + + return newArr.length === 1 && newArr[0] === kValue; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js new file mode 100644 index 0000000000..3da2857394 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-9-c-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js", + + description: "Array.prototype.filter - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return (idx === 1) && (val === 13); + } + + try { + Array.prototype[1] = 13; + var newArr = [, , , ].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 13; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js new file mode 100644 index 0000000000..65f6df1986 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.20-9-c-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js", + + description: "Array.prototype.filter - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return (idx === 0) && (val === 11); + } + + var obj = { 10: 10, length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + return 11; + }, + configurable: true + }); + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js new file mode 100644 index 0000000000..8760cc737b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-9-c-ii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js", + +description: "Array.prototype.filter - callbackfn called with correct parameters", + +test: function testcase() { + + var bPar = true; + var bCalled = false; + function callbackfn(val, idx, obj) + { + bCalled = true; + if(obj[idx] !== val) + bPar = false; + } + + var srcArr = [0,1,true,null,new Object(),"five"]; + srcArr[999999] = -6.6; + var resArr = srcArr.filter(callbackfn); + + if(bCalled === true && bPar === true) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js new file mode 100644 index 0000000000..9e9d1896de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js", + + description: "Array.prototype.filter - callbackfn is called with 1 formal parameter", + + test: function testcase() { + + function callbackfn(val) { + return val > 10; + } + var newArr = [12].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 12; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js new file mode 100644 index 0000000000..2ce09d5c00 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js", + + description: "Array.prototype.filter - callbackfn is called with 2 formal parameter", + + test: function testcase() { + + function callbackfn(val, idx) { + return val > 10 && arguments[2][idx] === val; + } + var newArr = [11].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js new file mode 100644 index 0000000000..9887e4b93e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-ii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js", + + description: "Array.prototype.filter - callbackfn is called with 3 formal parameter", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return val > 10 && obj[idx] === val; + } + var newArr = [11].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js new file mode 100644 index 0000000000..b6e05821ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-ii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js", + + description: "Array.prototype.filter - callbackfn that uses arguments object to get parameter value", + + test: function testcase() { + + function callbackfn() { + return arguments[2][arguments[1]] === arguments[0]; + } + var newArr = [11].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js new file mode 100644 index 0000000000..40e4f1ee85 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-9-c-ii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js", + + description: "Array.prototype.filter - 'this' of 'callbackfn' is a Boolean object when T is not an object (T is a boolean)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return this.valueOf() === false; + } + + var obj = { 0: 11, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn, false); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js new file mode 100644 index 0000000000..18d3289cdf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-9-c-ii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js", + + description: "Array.prototype.filter -'this' of 'callbackfn' is a Number object when T is not an object (T is a number)", + + test: function testcase() { + + function callbackfn(val, idx, o) { + return 5 === this.valueOf(); + } + + var obj = { 0: 11, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn, 5); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js new file mode 100644 index 0000000000..cd8794c4bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-9-c-ii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js", + + description: "Array.prototype.filter - 'this' of 'callbackfn' is an String object when T is not an object (T is a string)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return 'hello' === this.valueOf(); + } + + var obj = { 0: 11, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn, "hello"); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js new file mode 100644 index 0000000000..1af74705bd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-9-c-ii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js", + + description: "Array.prototype.filter - non-indexed properties are not called", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return val === 8; + } + + var obj = { 0: 11, non_index_property: 8, 2: 5, length: 20 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js new file mode 100644 index 0000000000..cc4894f6ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-9-c-ii-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js", + +description: "Array.prototype.filter - callbackfn takes 3 arguments", + +test: function testcase() { + + var parCnt = 3; + var bCalled = false + function callbackfn(val, idx, obj) + { + bCalled = true; + if(arguments.length !== 3) + parCnt = arguments.length; //verify if callbackfn was called with 3 parameters + } + + var srcArr = [0,1,2,3,4,5,6,7,8,9]; + var resArr = srcArr.filter(callbackfn); + if(bCalled === true && parCnt === 3) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js new file mode 100644 index 0000000000..2e4a4827d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.20-9-c-ii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js", + + description: "Array.prototype.filter - callbackfn called with correct parameters (thisArg is correct)", + + test: function testcase() { + + var thisArg = { threshold: 10 }; + + function callbackfn(val, idx, obj) { + return this === thisArg; + } + + var obj = { 0: 11, length: 1 }; + var newArr = Array.prototype.filter.call(obj, callbackfn, thisArg); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js new file mode 100644 index 0000000000..4b6c2d93e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.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: "15.4.4.20-9-c-ii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js", + + description: "Array.prototype.filter - callbackfn called with correct parameters (kValue is correct)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (idx === 0) { + return val === 11; + } + + if (idx === 1) { + return val === 12; + } + + return false; + } + + var obj = { 0: 11, 1: 12, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 2 && newArr[0] === 11 && newArr[1] === 12; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js new file mode 100644 index 0000000000..1b092c987d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.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: "15.4.4.20-9-c-ii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js", + + description: "Array.prototype.filter - callbackfn called with correct parameters (the index k is correct)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + if (val === 11) { + return idx === 0; + } + + if (val === 12) { + return idx === 1; + } + + return false; + } + + var obj = { 0: 11, 1: 12, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 2 && newArr[0] === 11 && newArr[1] === 12; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js new file mode 100644 index 0000000000..75aaed665c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-c-ii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js", + + description: "Array.prototype.filter - callbackfn called with correct parameters (this object O is correct)", + + test: function testcase() { + + var obj = { 0: 11, length: 2 }; + + function callbackfn(val, idx, o) { + return obj === o; + } + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js new file mode 100644 index 0000000000..2a51e13ddb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.20-9-c-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js", + + description: "Array.prototype.filter - k values are passed in ascending numeric order", + + test: function testcase() { + + var arr = [0, 1, 2, 3, 4, 5]; + var lastIdx = 0; + var called = 0; + function callbackfn(val, idx, o) { + called++; + if (lastIdx !== idx) { + return false; + } else { + lastIdx++; + return true; + } + } + var newArr = arr.filter(callbackfn); + + return newArr.length === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js new file mode 100644 index 0000000000..87d589cae7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.20-9-c-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js", + + description: "Array.prototype.filter - k values are accessed during each iteration and not prior to starting the loop on an Array", + + test: function testcase() { + + var kIndex = []; + var called = 0; + + //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time. + function callbackfn(val, idx, obj) { + called++; + //Each position should be visited one time, which means k is accessed one time during iterations. + if (kIndex[idx] === undefined) { + //when current position is visited, its previous index should has been visited. + if (idx !== 0 && kIndex[idx - 1] === undefined) { + return true; + } + kIndex[idx] = 1; + return false; + } else { + return true; + } + } + var newArr = [11, 12, 13, 14].filter(callbackfn, undefined); + + return newArr.length === 0 && called === 4; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js new file mode 100644 index 0000000000..f458cdc96e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-9-c-ii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js", + + description: "Array.prototype.filter - arguments to callbackfn are self consistent", + + test: function testcase() { + + var obj = { 0: 11, length: 1 }; + var thisArg = {}; + + function callbackfn() { + return this === thisArg && + arguments[0] === 11 && + arguments[1] === 0 && + arguments[2] === obj; + } + + var newArr = Array.prototype.filter.call(obj, callbackfn, thisArg); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js new file mode 100644 index 0000000000..fda6e4e768 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.20-9-c-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js", + + description: "Array.prototype.filter - unhandled exceptions happened in callbackfn terminate iteration", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + if (called === 1) { + throw new Error("Exception occurred in callbackfn"); + } + return true; + } + + var obj = { 0: 11, 4: 10, 10: 8, length: 20 }; + + try { + Array.prototype.filter.call(obj, callbackfn); + return false; + } catch (ex) { + return 1 === called && ex instanceof Error; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js new file mode 100644 index 0000000000..1b5ec8af77 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-9-c-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js", + + description: "Array.prototype.filter - element changed by callbackfn on previous iterations is observed", + + test: function testcase() { + + var obj = { 0: 11, 1: 12, length: 2 }; + + function callbackfn(val, idx, o) { + if (idx === 0) { + obj[idx + 1] = 8; + } + return val > 10; + } + + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js new file mode 100644 index 0000000000..d28bf7e6c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js", + + description: "Array.prototype.filter - callbackfn is called with 0 formal parameter", + + test: function testcase() { + + function callbackfn() { + return true; + } + var newArr = [11].filter(callbackfn); + + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js new file mode 100644 index 0000000000..34bc96084e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.20-9-c-iii-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js", + + description: "Array.prototype.filter - value of returned array element equals to 'kValue'", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, 1: 9, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + return newArr[0] === obj[0] && newArr[1] === obj[1]; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js new file mode 100644 index 0000000000..a7657c49e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-9-c-iii-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js", + + description: "Array.prototype.filter - value of returned array element can be overwritten", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, 1: 9, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + try { + var tempVal = newArr[1]; + newArr[1] += 1; + return newArr[1] !== tempVal; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js new file mode 100644 index 0000000000..bdf177b19b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.20-9-c-iii-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js", + + description: "Array.prototype.filter - value of returned array element can be enumerated", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + var prop; + var enumerable = false; + for (prop in newArr) { + if (newArr.hasOwnProperty(prop)) { + if (prop === "0") { + enumerable = true; + } + } + } + + return enumerable; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js new file mode 100644 index 0000000000..f6b5187980 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.20-9-c-iii-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js", + + description: "Array.prototype.filter - value of returned array element can be changed or deleted", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, 1: 9, length: 2 }; + var newArr = Array.prototype.filter.call(obj, callbackfn); + + try { + var tempVal = newArr[1]; + delete newArr[1]; + return tempVal !== undefined && newArr[1] === undefined; + } catch (ex) { + return false; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js new file mode 100644 index 0000000000..5dfedd9ce3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.20-9-c-iii-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js", + + description: "Array.prototype.filter - values of 'to' are passed in acending numeric order", + + test: function testcase() { + + var arr = [0, 1, 2, 3, 4]; + var lastToIdx = 0; + var called = 0; + function callbackfn(val, idx, obj) { + called++; + if (lastToIdx !== idx) { + return false; + } else { + lastToIdx++; + return true; + } + } + var newArr = arr.filter(callbackfn); + + return newArr.length === 5 && called === 5; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js new file mode 100644 index 0000000000..b25055889d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.20-9-c-iii-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js", + + description: "Array.prototype.filter - values of 'to' are accessed during each iteration when 'selected' is converted to true and not prior to starting the loop", + + test: function testcase() { + + var toIndex = []; + var called = 0; + + //By below way, we could verify that 'to' would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time. + function callbackfn(val, idx, obj) { + called++; + //Each position should be visited one time, which means 'to' is accessed one time during iterations. + if (toIndex[idx] === undefined) { + //when current position is visited, its previous index should has been visited. + if (idx !== 0 && toIndex[idx - 1] === undefined) { + return false; + } + toIndex[idx] = 1; + return true; + } else { + return false; + } + } + var newArr = [11, 12, 13, 14].filter(callbackfn, undefined); + + return newArr.length === 4 && called === 4; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js new file mode 100644 index 0000000000..19b4e259f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.20-9-c-iii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js", + +description: "Array.prototype.filter - getOwnPropertyDescriptor(all true) of returned array element", + +test: function testcase() { + + function callbackfn(val, idx, obj){ + if(val % 2) + return true; + else + return false; + } + var srcArr = [0,1,2,3,4]; + var resArr = srcArr.filter(callbackfn); + if (resArr.length > 0){ + var desc = Object.getOwnPropertyDescriptor(resArr, 1) + if(desc.value === 3 && //srcArr[1] = true + desc.writable === true && + desc.enumerable === true && + desc.configurable === true){ + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.filter); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js new file mode 100644 index 0000000000..050d5b839f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js", + + description: "Array.prototype.filter return value of callbackfn is a number (value is negative number)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return -5; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js new file mode 100644 index 0000000000..81bc08c3f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js", + + description: "Array.prototype.filter return value of callbackfn is a number (value is Infinity)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return Infinity; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js new file mode 100644 index 0000000000..ff2295c8dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js", + + description: "Array.prototype.filter return value of callbackfn is a number (value is -Infinity)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return -Infinity; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js new file mode 100644 index 0000000000..3ced0ecc2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-c-iii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js", + + description: "Array.prototype.filter return value of callbackfn is a number (value is NaN)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return NaN; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js new file mode 100644 index 0000000000..71558a5aab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-c-iii-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js", + + description: "Array.prototype.filter return value of callbackfn is an empty string", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return ""; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js new file mode 100644 index 0000000000..0740ed9682 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js", + + description: "Array.prototype.filter return value of callbackfn is a non-empty string", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return "non-empty string"; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js new file mode 100644 index 0000000000..fe4891d481 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js", + + description: "Array.prototype.filter return value of callbackfn is a Function object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return function () { }; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js new file mode 100644 index 0000000000..d4c2f6a939 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js", + + description: "Array.prototype.filter return value of callbackfn is an Array object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Array(10); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js new file mode 100644 index 0000000000..80ad3fcf1d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js", + + description: "Array.prototype.filter return value of callbackfn is a String object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new String(); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js new file mode 100644 index 0000000000..3f05d206e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js", + + description: "Array.prototype.filter return value of callbackfn is a Boolean object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Boolean(); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js new file mode 100644 index 0000000000..56ed867a54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-9-c-iii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js", + + description: "Array.prototype.filter - return value of callbackfn is undefined", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, o) { + accessed = true; + return undefined; + } + + var obj = { 0: 11, length: 1 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js new file mode 100644 index 0000000000..3219c2d850 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js", + + description: "Array.prototype.filter - return value of callbackfn is a Number object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Number(); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js new file mode 100644 index 0000000000..14e437593b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js", + + description: "Array.prototype.filter - return value of callbackfn is the Math object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return Math; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js new file mode 100644 index 0000000000..869df1d0ff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js", + + description: "Array.prototype.filter - return value of callbackfn is a Date object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Date(); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js new file mode 100644 index 0000000000..dc26b0c59c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js", + + description: "Array.prototype.filter - return value of callbackfn is a RegExp object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new RegExp(); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js new file mode 100644 index 0000000000..6b118a5004 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.20-9-c-iii-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js", + + description: "Array.prototype.filter - return value of callbackfn is the JSON object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return JSON; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js new file mode 100644 index 0000000000..21435b5867 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js", + + description: "Array.prototype.filter - return value of callbackfn is an Error object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new EvalError(); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js new file mode 100644 index 0000000000..cb177b099f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js", + + description: "Array.prototype.filter - return value of callbackfn is the Arguments object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return arguments; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js new file mode 100644 index 0000000000..6ac56524ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js", + + description: "Array.prototype.filter - return value of callbackfn is the global object", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return fnGlobalObject(); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js new file mode 100644 index 0000000000..2d93a41716 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.20-9-c-iii-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js", + + description: "Array.prototype.filter - false prevents element added to output Array", + + test: function testcase() { + + var called = 0; + + function callbackfn(val, idx, obj) { + called++; + return val > 10; + } + + var obj = { 0: 11, 1: 8, length: 20 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 1 && newArr[0] !== 8 && called === 2; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js new file mode 100644 index 0000000000..147b353e8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-9-c-iii-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js", + + description: "Array.prototype.filter - return value of callbackfn is null", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return null; + } + + var obj = { 0: 11, length: 1 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js new file mode 100644 index 0000000000..d42514691e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js", + + description: "Array.prototype.filter - return value (new Boolean(false)) of callbackfn is treated as true value", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return new Boolean(false); + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js new file mode 100644 index 0000000000..2d481291a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.20-9-c-iii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js", + + description: "Array.prototype.filter - return value of callbackfn is a boolean (value is false)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return false; + } + + var obj = { 0: 11, length: 1 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js new file mode 100644 index 0000000000..354e391d59 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.20-9-c-iii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js", + + description: "Array.prototype.filter - return value of callbackfn is a boolean (value is true)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return true; + } + + var obj = { 0: 11, length: 1 }; + + var newArr = Array.prototype.filter.call(obj, callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js new file mode 100644 index 0000000000..f356af700f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-c-iii-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js", + + description: "Array.prototype.filter - return value of callbackfn is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return 0; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js new file mode 100644 index 0000000000..897699ee5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-c-iii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js", + + description: "Array.prototype.filter - return value of callbackfn is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return +0; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js new file mode 100644 index 0000000000..be3b51ff85 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.20-9-c-iii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js", + + description: "Array.prototype.filter - return value of callbackfn is a nunmber (value is -0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(val, idx, obj) { + accessed = true; + return -0; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 0 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js new file mode 100644 index 0000000000..94df6be2a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.20-9-c-iii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js", + + description: "Array.prototype.filter - return value of callbackfn is a number (value is positive number)", + + test: function testcase() { + + function callbackfn(val, idx, obj) { + return 5; + } + + var newArr = [11].filter(callbackfn); + return newArr.length === 1 && newArr[0] === 11; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.filter); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js new file mode 100644 index 0000000000..fb19acb43f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js @@ -0,0 +1,36 @@ +/// 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: "15.4.4.21-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js", + +description: "Array.prototype.reduce must exist as a function", + +test: function testcase() { + var f = Array.prototype.reduce; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js new file mode 100644 index 0000000000..9cb0ae364f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.21-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js", + +description: "Array.prototype.reduce.length must be 1", + +test: function testcase() { + if (Array.prototype.reduce.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js new file mode 100644 index 0000000000..e3f3c8bf6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.21-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js", + + description: "Array.prototype.reduce applied to undefined", + + test: function testcase() { + try { + Array.prototype.reduce.call(undefined); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js new file mode 100644 index 0000000000..f0511d9529 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.21-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js", + + description: "Array.prototype.reduce applied to the Math object", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return ('[object Math]' === Object.prototype.toString.call(obj)); + } + + try { + Math.length = 1; + Math[0] = 1; + return Array.prototype.reduce.call(Math, callbackfn, 1); + } finally { + delete Math[0]; + delete Math.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js new file mode 100644 index 0000000000..81bbc11bd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js", + + description: "Array.prototype.reduce applied to Date object", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof Date; + } + + var obj = new Date(); + obj.length = 1; + obj[0] = 1; + + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js new file mode 100644 index 0000000000..1c0903863e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js", + + description: "Array.prototype.reduce applied to RegExp object", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof RegExp; + } + + var obj = new RegExp(); + obj.length = 1; + obj[0] = 1; + + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js new file mode 100644 index 0000000000..cd0f3fa33e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.21-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js", + + description: "Array.prototype.reduce applied to the JSON object", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return ('[object JSON]' === Object.prototype.toString.call(obj)); + } + + try { + JSON.length = 1; + JSON[0] = 1; + return Array.prototype.reduce.call(JSON, callbackfn, 1); + } finally { + delete JSON.length; + delete JSON[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js new file mode 100644 index 0000000000..9e3f160dcb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js", + + description: "Array.prototype.reduce applied to Error object", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof Error; + } + + var obj = new Error(); + obj.length = 1; + obj[0] = 1; + + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js new file mode 100644 index 0000000000..5fcaa4d209 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js", + + description: "Array.prototype.reduce applied to the Arguments object", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return ('[object Arguments]' === Object.prototype.toString.call(obj)); + } + + var obj = (function () { + return arguments; + }("a", "b")); + + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js new file mode 100644 index 0000000000..c5686281be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.21-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js", + + description: "Array.prototype.reduce applied to null", + + test: function testcase() { + try { + Array.prototype.reduce.call(null); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js new file mode 100644 index 0000000000..7c6038d546 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.21-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js", + + description: "Array.prototype.reduce applied to boolean primitive", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof Boolean; + } + + try { + Boolean.prototype[0] = true; + Boolean.prototype.length = 1; + + return Array.prototype.reduce.call(false, callbackfn, 1); + + } finally { + delete Boolean.prototype[0]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js new file mode 100644 index 0000000000..02f8819af5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js", + + description: "Array.prototype.reduce applied to Boolean object", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof Boolean; + } + + var obj = new Boolean(true); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js new file mode 100644 index 0000000000..b4a907fc05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.21-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js", + + description: "Array.prototype.reduce applied to number primitive", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof Number; + } + + try { + Number.prototype[0] = 1; + Number.prototype.length = 1; + + return Array.prototype.reduce.call(2.5, callbackfn, 1); + } finally { + delete Number.prototype[0]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js new file mode 100644 index 0000000000..aa8c8c2bcc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js", + + description: "Array.prototype.reduce applied to Number object", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof Number; + } + + var obj = new Number(-128); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js new file mode 100644 index 0000000000..05a9e22841 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.21-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js", + + description: "Array.prototype.reduce applied to string primitive", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof String; + } + + return Array.prototype.reduce.call("abc", callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js new file mode 100644 index 0000000000..c9646a7b2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js", + + description: "Array.prototype.reduce applied to String object", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof String; + } + + var obj = new String("abc"); + + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js new file mode 100644 index 0000000000..5f32185869 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js", + + description: "Array.prototype.reduce applied to Function object", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + return obj instanceof Function; + } + + var obj = function (a, b) { + return a + b; + }; + obj[0] = 11; + obj[1] = 9; + + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js new file mode 100644 index 0000000000..7c31405748 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.21-10-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js", + +description: "Array.prototype.reduce doesn't mutate the Array on which it is called on", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + return 1; + } + var srcArr = [1,2,3,4,5]; + srcArr.reduce(callbackfn); + if(srcArr[0] === 1 && + srcArr[1] === 2 && + srcArr[2] === 3 && + srcArr[3] === 4 && + srcArr[4] === 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js new file mode 100644 index 0000000000..5a233c527a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-10-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js", + +description: "Array.prototype.reduce reduces the array in ascending order of indices", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + return prevVal + curVal; + } + var srcArr = ['1','2','3','4','5']; + if(srcArr.reduce(callbackfn) === '12345') + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.js new file mode 100644 index 0000000000..77173b8967 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.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: "15.4.4.21-10-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.js", + +description: "Array.prototype.reduce - subclassed array of length 1", + +test: function testcase() { + foo.prototype = [1]; + function foo() {} + var f = new foo(); + + function cb(){} + if(f.reduce(cb) === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.js new file mode 100644 index 0000000000..18412c57c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.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: "15.4.4.21-10-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.js", + +description: "Array.prototype.reduce - subclassed array with length more than 1", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3, 4); + function foo() {} + var f = new foo(); + + function cb(prevVal, curVal, idx, obj){return prevVal + curVal;} + if(f.reduce(cb) === 10) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js new file mode 100644 index 0000000000..c0345f9e2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-10-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js", + +description: "Array.prototype.reduce reduces the array in ascending order of indices(initialvalue present)", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + return prevVal + curVal; + } + var srcArr = ['1','2','3','4','5']; + if(srcArr.reduce(callbackfn,'0') === '012345') + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.js new file mode 100644 index 0000000000..ee1b67ba64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.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: "15.4.4.21-10-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.js", + +description: "Array.prototype.reduce - subclassed array when initialvalue provided", + +test: function testcase() { + foo.prototype = [1,2,3,4]; + function foo() {} + var f = new foo(); + + function cb(prevVal, curVal, idx, obj){return prevVal + curVal;} + if(f.reduce(cb,-1) === 9) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.js new file mode 100644 index 0000000000..b22276e495 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.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: "15.4.4.21-10-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.js", + +description: "Array.prototype.reduce - subclassed array with length 1 and initialvalue provided", + +test: function testcase() { + foo.prototype = [1]; + function foo() {} + var f = new foo(); + + function cb(prevVal, curVal, idx, obj){return prevVal + curVal;} + if(f.reduce(cb,-1) === 0) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js new file mode 100644 index 0000000000..589cb6d026 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.21-10-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js", + +description: "Array.prototype.reduce doesn't visit expandos", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(prevVal, curVal, idx, obj) + { + callCnt++; + return curVal; + } + var srcArr = ['1','2','3','4','5']; + srcArr["i"] = 10; + srcArr[true] = 11; + srcArr.reduce(callbackfn); + + if(callCnt == 4) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js new file mode 100644 index 0000000000..2d3c67c623 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.21-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js", + + description: "Array.prototype.reduce - 'length' is own data property on an Array-like object", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: 2 + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js new file mode 100644 index 0000000000..bc3a5da4b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js", + + description: "Array.prototype.reduce applied to Array-like object, 'length' is an inherited accessor property", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduce.call(child, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js new file mode 100644 index 0000000000..12ccda2f69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js", + + description: "Array.prototype.reduce applied to Array-like object, 'length' is an own accessor property without a get function", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { + 0: 11, + 1: 12 + }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js new file mode 100644 index 0000000000..6aa7553bff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js", + + description: "Array.prototype.reduce - 'length' is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var obj = { 0: 12, 1: 11 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + } finally { + delete Object.prototype.length; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js new file mode 100644 index 0000000000..f8e8503127 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.21-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js", + + description: "Array.prototype.reduce applied to Array-like object that 'length' is inherited accessor property without a get function", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 11; + child[1] = 12; + + return Array.prototype.reduce.call(child, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js new file mode 100644 index 0000000000..e857eb6a29 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js", + + description: "Array.prototype.reduce applied to the Array-like object that 'length' property doesn't exist", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 11, 1: 12 }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js new file mode 100644 index 0000000000..781096e860 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.21-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js", + + description: "Array.prototype.reduce - 'length' is property of the global object", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 12; + fnGlobalObject()[1] = 11; + fnGlobalObject()[2] = 9; + fnGlobalObject().length = 2; + return Array.prototype.reduce.call(fnGlobalObject(), callbackfn, 1) === true; + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js new file mode 100644 index 0000000000..1f9cc0199b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js", + + description: "Array.prototype.reduce applied to the Arguments object, which implements its own property get method", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var func = function (a, b) { + arguments[2] = 9; + return Array.prototype.reduce.call(arguments, callbackfn, 1); + }; + + return func(12, 11) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js new file mode 100644 index 0000000000..8d740f90d5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js", + + description: "Array.prototype.reduce applied to String object, which implements its own property get method", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 3); + } + + var str = new String("012"); + + return Array.prototype.reduce.call(str, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js new file mode 100644 index 0000000000..83c4549b0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.21-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js", + + description: "Array.prototype.reduce applied to Function object, which implements its own property get method", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var fun = function (a, b) { + return a + b; + }; + fun[0] = 12; + fun[1] = 11; + fun[2] = 9; + + return Array.prototype.reduce.call(fun, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js new file mode 100644 index 0000000000..10ffb32f8f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.21-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js", + + description: "Array.prototype.reduce - 'length' is own data property on an Array", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + return [12, 11].reduce(callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.js new file mode 100644 index 0000000000..7db7e92a2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.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: "15.4.4.21-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.js", + + description: "Array.prototype.reduce - 'length' is an own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduce.call(child, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js new file mode 100644 index 0000000000..4fc4386f43 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.21-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js", + + description: "Array.prototype.reduce - 'length' is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + var storeProtoLength; + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + try { + storeProtoLength = Array.prototype.length; + Array.prototype.length = 0; + + return [12, 11].reduce(callbackfn, 1) === true; + } finally { + Array.prototype.length = storeProtoLength; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js new file mode 100644 index 0000000000..ab9fa80bcf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.21-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js", + + description: "Array.prototype.reduce applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduce.call(child, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js new file mode 100644 index 0000000000..ed15ee56db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js", + + description: "Array.prototype.reduce applied to Array-like object, 'length' is an inherited data property", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var proto = { length: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduce.call(child, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js new file mode 100644 index 0000000000..2a2a0fc724 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js", + + description: "Array.prototype.reduce applied to Array-like object, 'length' is an own accessor property", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + obj[0] = 12; + obj[1] = 11; + obj[2] = 9; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js new file mode 100644 index 0000000000..56c0ee7273 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.21-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js", + + description: "Array.prototype.reduce applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduce.call(child, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js new file mode 100644 index 0000000000..9fac26fb5f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.21-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js", + + description: "Array.prototype.reduce applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (obj.length === 2); + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduce.call(child, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js new file mode 100644 index 0000000000..674e94b8b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js", + + description: "Array.prototype.reduce - value of 'length' is undefined", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return 2; + } + + var obj = { 0: 0, 1: 1, length: undefined }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js new file mode 100644 index 0000000000..a878d5479c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js", + + description: "Array.prototype.reduce - value of 'length' is number primitive (value is NaN)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return 2; + } + + var obj = { 0: 9, length: NaN }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js new file mode 100644 index 0000000000..ec4dac4bba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js", + + description: "Array.prototype.reduce - 'length' is a string containing a positive number", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { 1: 11, 2: 9, length: "2" }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js new file mode 100644 index 0000000000..f576a39819 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js", + + description: "Array.prototype.reduce - 'length' is a string containing a negative number", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { 1: 11, 2: 9, length: "-4294967294" }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js new file mode 100644 index 0000000000..85303d0777 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js", + + description: "Array.prototype.reduce - 'length' is a string containing a decimal number", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { 1: 11, 2: 9, length: "2.5" }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js new file mode 100644 index 0000000000..c18ab3f948 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.21-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js", + + description: "Array.prototype.reduce - 'length' is a string containing +/-Infinity", + + test: function testcase() { + + var accessed1 = false; + var accessed2 = false; + var accessed3 = false; + + function callbackfn1(prevVal, curVal, idx, obj) { + accessed1 = true; + return 2; + } + + function callbackfn2(prevVal, curVal, idx, obj) { + accessed2 = true; + return 2; + } + + function callbackfn3(prevVal, curVal, idx, obj) { + accessed3 = true; + return 2; + } + + var obj1 = { 0: 9, length: "Infinity" }; + var obj2 = { 0: 9, length: "-Infinity" }; + var obj3 = { 0: 9, length: "+Infinity" }; + + return Array.prototype.reduce.call(obj1, callbackfn1, 1) === 1 && + Array.prototype.reduce.call(obj2, callbackfn2, 1) === 1 && + Array.prototype.reduce.call(obj3, callbackfn3, 1) === 1 && + !accessed1 && !accessed2 && !accessed3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js new file mode 100644 index 0000000000..ad30b2604c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js", + + description: "Array.prototype.reduce - 'length' is a string containing an exponential number", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { 1: 11, 2: 9, length: "2E0" }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js new file mode 100644 index 0000000000..dfe49a7cd7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js", + + description: "Array.prototype.reduce - 'length' is a string containing a hex number", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { 1: 11, 2: 9, length: "0x0002" }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js new file mode 100644 index 0000000000..104b3265f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js", + + description: "Array.prototype.reduce - 'length' is a string containing a number with leading zeros", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { 1: 11, 2: 9, length: "0002.00" }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js new file mode 100644 index 0000000000..1fc0fed40b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js", + + description: "Array.prototype.reduce - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return 2; + } + + var obj = { 0: 9, length: "asdf!_" }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js new file mode 100644 index 0000000000..170e81c6e6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js", + + description: "Array.prototype.reduce - value of 'length' is an Object which has an own toString method", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { + 1: 11, + 2: 9, + length: { + toString: function () { + return '2'; + } + } + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js new file mode 100644 index 0000000000..b650572332 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js", + + description: "Array.prototype.reduce - value of 'length' is a boolean (value is true)", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 0); + } + + var obj = { 0: 11, 1: 9, length: true }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js new file mode 100644 index 0000000000..afaec33d67 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js", + + description: "Array.prototype.reduce - value of 'length' is an object which has an own valueOf method", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { + 1: 11, + 2: 9, + length: { + valueOf: function () { + return 2; + } + } + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js new file mode 100644 index 0000000000..2f307e3a2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.21-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js", + + description: "Array.prototype.reduce - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + var valueOfOccured = false; + var toStringOccured = false; + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { + 1: 11, + 2: 9, + length: { + valueOf: function () { + valueOfOccured = true; + return {}; + }, + toString: function () { + toStringOccured = true; + return '2'; + } + } + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true && valueOfOccured && toStringOccured; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js new file mode 100644 index 0000000000..0981455f63 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.21-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js", + + description: "Array.prototype.reduce throws TypeError exception - 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var accessed = false; + var valueOfAccessed = false; + var toStringAccessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return true; + } + + var obj = { + 1: 11, + 2: 12, + + length: { + valueOf: function () { + valueOfAccessed = true; + return {}; + }, + toString: function () { + toStringAccessed = true; + return {}; + } + } + }; + + try { + Array.prototype.reduce.call(obj, callbackfn, 1); + return false; + } catch (ex) { + return (ex instanceof TypeError) && !accessed && toStringAccessed && valueOfAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js new file mode 100644 index 0000000000..697ccb05be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.21-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js", + + description: "Array.prototype.reduce uses inherited valueOf method - 'length' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + var valueOfAccessed = false; + var toStringAccessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + child.toString = function () { + toStringAccessed = true; + return '1'; + }; + + var obj = { + 1: 11, + 2: 9, + length: child + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js new file mode 100644 index 0000000000..eedca6bdb7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js", + + description: "Array.prototype.reduce - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { + 1: 11, + 2: 9, + length: 2.685 + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js new file mode 100644 index 0000000000..26ef9c1b65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js", + + description: "Array.prototype.reduce - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { + 1: 11, + 2: 9, + length: -4294967294.5 + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js new file mode 100644 index 0000000000..87948f3d58 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.21-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js", + + description: "Array.prototype.reduce - value of 'length' is boundary value (2^32)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return 2; + } + + var obj = { + 0: 12, + length: 4294967296 + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js new file mode 100644 index 0000000000..41c4b867ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js", + + description: "Array.prototype.reduce - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 0); + } + + var obj = { + 0: 11, + 1: 9, + length: 4294967297 + }; + + return Array.prototype.reduce.call(obj, callbackfn, 1); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js new file mode 100644 index 0000000000..c37887ac0b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js", + + description: "Array.prototype.reduce - value of 'length' is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return 2; + } + + var obj = { 0: 1, 1: 1, length: 0 }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js new file mode 100644 index 0000000000..d28d6ddd2a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js", + + description: "Array.prototype.reduce - value of 'length' is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return 2; + } + + var obj = { 0: 11, length: +0 }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js new file mode 100644 index 0000000000..53f88e6713 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js", + + description: "Array.prototype.reduce - value of 'length' is a number (value is -0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return 2; + } + + var obj = { 0: 11, length: -0 }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js new file mode 100644 index 0000000000..4e40e72e4d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js", + + description: "Array.prototype.reduce - value of 'length' is a number (value is positive)", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { 1: 11, 2: 9, length: 2 }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js new file mode 100644 index 0000000000..7f3b289476 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js", + + description: "Array.prototype.reduce - value of 'length' is a number (value is negative)", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal === 11 && idx === 1); + } + + var obj = { 1: 11, 2: 9, length: -4294967294 }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js new file mode 100644 index 0000000000..63e3d8fa5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js", + + description: "Array.prototype.reduce - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return 2; + } + + var obj = { 0: 9, length: Infinity }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js new file mode 100644 index 0000000000..9cbd79ec80 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js", + + description: "Array.prototype.reduce - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: -Infinity }; + + return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js new file mode 100644 index 0000000000..de2bab9e04 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js", + +description: "Array.prototype.reduce throws TypeError if callbackfn is undefined", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduce(); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js new file mode 100644 index 0000000000..7486e4e276 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js", + + description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js new file mode 100644 index 0000000000..66fd936a27 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.21-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js", + + description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js new file mode 100644 index 0000000000..31b3e606e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-4-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js", + + description: "Array.prototype.reduce - 'callbackfn' is a function", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return curVal > 10; + } + + return [11, 9].reduce(callbackfn, 1) === false && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js new file mode 100644 index 0000000000..0388133874 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.21-4-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js", + + description: "Array.prototype.reduce - calling with no callbackfn is the same as passing undefined for callbackfn", + + test: function testcase() { + var obj = { 10: 10 }; + var lengthAccessed = false; + var loopAccessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + lengthAccessed = true; + return 20; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + loopAccessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj); + return false; + } catch (ex) { + return (ex instanceof TypeError) && lengthAccessed && !loopAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js new file mode 100644 index 0000000000..20ba2697ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-4-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js", + +description: "Array.prototype.reduce throws ReferenceError if callbackfn is unreferenced", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduce(foo); + } + catch(e) { + if(e instanceof ReferenceError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js new file mode 100644 index 0000000000..de0a6669dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js", + +description: "Array.prototype.reduce throws TypeError if callbackfn is null", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduce(null); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js new file mode 100644 index 0000000000..3b14e4b9a7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js", + +description: "Array.prototype.reduce throws TypeError if callbackfn is boolean", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduce(true); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js new file mode 100644 index 0000000000..1639215b2c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js", + +description: "Array.prototype.reduce throws TypeError if callbackfn is number", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduce(5); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js new file mode 100644 index 0000000000..a145ee9553 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js", + +description: "Array.prototype.reduce throws TypeError if callbackfn is string", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduce("abc"); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js new file mode 100644 index 0000000000..9373ba4339 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js", + +description: "Array.prototype.reduce throws TypeError if callbackfn is Object without [[Call]] internal method", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduce(new Object()); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js new file mode 100644 index 0000000000..e8fd8885a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-4-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js", + + description: "Array.prototype.reduce - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js new file mode 100644 index 0000000000..489fd066ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js", + + description: "Array.prototype.reduce - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js new file mode 100644 index 0000000000..4dcbf20483 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-5-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js", + +description: "Array.prototype.reduce throws TypeError if 'length' is 0 (empty array), no initVal", + +test: function testcase() { + function cb(){} + + try { + [].reduce(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js new file mode 100644 index 0000000000..70771b5b89 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js", + + description: "Array.prototype.reduce - if exception occurs, it occurs after any side-effects that might be produced by step 2", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal > 10); + } + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 0; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js new file mode 100644 index 0000000000..cdf41bb3da --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.21-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js", + + description: "Array.prototype.reduce - if the exception occurs, it occurs after any side-effects that might be produced by step 3", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal > 10); + } + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "0"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js new file mode 100644 index 0000000000..db46fd6c73 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.21-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js", + + description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal > 10); + } + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, callbackfn); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js new file mode 100644 index 0000000000..2a93dfbcd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js", + + description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return (curVal > 10); + } + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + + try { + Array.prototype.reduce.call(obj, callbackfn); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js new file mode 100644 index 0000000000..98f0372cab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js", + +description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden to null (type conversion)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = null; + + function cb(){} + try { + f.reduce(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js new file mode 100644 index 0000000000..7b3777092e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js", + +description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden to false (type conversion)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = false; + + function cb(){} + try { + f.reduce(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js new file mode 100644 index 0000000000..0f439f42d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js", + +description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + function cb(){} + try { + f.reduce(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js new file mode 100644 index 0000000000..71306e94f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js", + +description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = '0'; + + function cb(){} + try { + f.reduce(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js new file mode 100644 index 0000000000..f077a786d2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.21-5-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js", + +description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj with valueOf), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { valueOf: function () { return 0;}}; + f.length = o; + + function cb(){} + try { + f.reduce(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js new file mode 100644 index 0000000000..ecd8f932e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.21-5-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js", + +description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + function cb(){} + try { + f.reduce(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js new file mode 100644 index 0000000000..67044ee2a6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.21-5-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js", + +description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden with []), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + try { + f.reduce(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js new file mode 100644 index 0000000000..e3a3ab7387 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js", + + description: "Array.prototype.reduce - 'initialValue' is returned if 'len' is 0 and 'initialValue' is present", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + return [].reduce(callbackfn, 3) === 3 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.js new file mode 100644 index 0000000000..98e85a51b5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.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: "15.4.4.21-7-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (empty array)", + +test: function testcase() { + function cb(){} + + try { + if([].reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.js new file mode 100644 index 0000000000..3c7a4b71af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.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: "15.4.4.21-7-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.js", + + description: "Array.prototype.reduce - 'initialValue' is present", + + test: function testcase() { + + var str = "initialValue is present"; + return str === [].reduce(function () { }, str); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.js new file mode 100644 index 0000000000..1719505ad4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.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: "15.4.4.21-7-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.js", + + description: "Array.prototype.reduce - 'initialValue' is not present", + + test: function testcase() { + + var str = "initialValue is not present"; + return str === [str].reduce(function () { }); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js new file mode 100644 index 0000000000..d1627cf848 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-7-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to null (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = null; + + function cb(){} + try { + if(f.reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js new file mode 100644 index 0000000000..bf9537d95c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-7-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to false (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = false; + + function cb(){} + try { + if(f.reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js new file mode 100644 index 0000000000..ff198c69a4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-7-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to 0 (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + function cb(){} + try { + if(f.reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js new file mode 100644 index 0000000000..fc8335180d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-7-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to '0' (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = '0'; + + function cb(){} + try { + if(f.reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js new file mode 100644 index 0000000000..e81f617e40 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-7-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj with valueOf)", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { valueOf: function () { return 0;}}; + f.length = o; + + function cb(){} + try { + if(f.reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js new file mode 100644 index 0000000000..d2972ef28b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-7-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj w/o valueOf (toString))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + function cb(){} + try { + if(f.reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js new file mode 100644 index 0000000000..ea2c984dc5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-7-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [])", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + try { + if(f.reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js new file mode 100644 index 0000000000..af884e15a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-7-9", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js", + +description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [0])", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = [0]; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + try { + if(f.reduce(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js new file mode 100644 index 0000000000..1e16d10b83 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-8-b-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js", + + description: "Array.prototype.reduce - no observable effects occur if 'len' is 0", + + test: function testcase() { + + var accessed = false; + + var obj = { length: 0 }; + + Object.defineProperty(obj, "0", { + get: function () { + accessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, function () { }); + return false; + } catch (ex) { + return !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js new file mode 100644 index 0000000000..47a61de1ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-8-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js", + + description: "Array.prototype.reduce - modifications to length don't change number of iterations in step 9", + + test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + return idx; + } + + var obj = { 3: 12, 4: 9, length: 4 }; + + Object.defineProperty(obj, "2", { + get: function () { + obj.length = 10; + return 11; + }, + configurable: true + }); + + return Array.prototype.reduce.call(obj, callbackfn) === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js new file mode 100644 index 0000000000..99b10c6929 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.21-8-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js", + + description: "Array.prototype.reduce - loop is broken once 'kPresent' is true", + + test: function testcase() { + + var called = 0; + var testResult = false; + var firstCalled = 0; + var secondCalled = 0; + + function callbackfn(prevVal, val, idx, obj) { + if (called === 0) { + testResult = (idx === 1); + } + called++; + } + + var arr = [, , ]; + + Object.defineProperty(arr, "0", { + get: function () { + firstCalled++; + return 11; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + secondCalled++; + return 9; + }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult && firstCalled === 1 && secondCalled === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js new file mode 100644 index 0000000000..2e49f86441 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-8-b-ii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js", + + description: "Array.prototype.reduce - added properties in step 2 are visible here", + + test: function testcase() { + + var obj = { }; + + Object.defineProperty(obj, "length", { + get: function () { + obj[1] = "accumulator"; + return 3; + }, + configurable: true + }); + + return Array.prototype.reduce.call(obj, function () { }) === "accumulator"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js new file mode 100644 index 0000000000..e6bc95bc3c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js @@ -0,0 +1,50 @@ +/// Copyright (c) 2009 Microsoft Corporation +/// 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: "15.4.4.21-8-b-ii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js", + + description: "Array.prototype.reduce - deleted properties in step 2 are visible here", + + test: function testcase() { + + var obj = { 1: "accumulator", 2: "another" }; + + Object.defineProperty(obj, "length", { + get: function () { + delete obj[1]; + return 3; + }, + configurable: true + }); + + return "accumulator" !== Array.prototype.reduce.call(obj, function () { }); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js new file mode 100644 index 0000000000..63f4f126c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-8-b-iii-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + var obj = { 0: 0, 1: 1, 2: 2, length: 2 }; + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js new file mode 100644 index 0000000000..7437aeec68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-8-b-iii-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js", + + description: "Array.prototype.reduce - when element to be retrieved is own accessor property on an Array", + + test: function testcase() { + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + var arr = [, 1, 2]; + + Object.defineProperty(arr, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js new file mode 100644 index 0000000000..09422636bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-8-b-iii-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "9"); + } + } + + var proto = { 0: 0, 1: 1, 2: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "0", { + get: function () { + return "9"; + }, + configurable: true + }); + + Array.prototype.reduce.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js new file mode 100644 index 0000000000..03bcb0ffed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.21-8-b-iii-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "9"); + } + } + + try { + Array.prototype[0] = 0; + var arr = [, 1, 2]; + + Object.defineProperty(arr, "0", { + get: function () { + return "9"; + }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js new file mode 100644 index 0000000000..d0524d2635 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.21-8-b-iii-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + test: function testcase() { + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "9"); + } + } + + var proto = { 1: 1, 2: 2}; + + Object.defineProperty(proto, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "0", { + get: function () { + return "9"; + }, + configurable: true + }); + + Array.prototype.reduce.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js new file mode 100644 index 0000000000..6444894aa4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-8-b-iii-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "9"); + } + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + var arr = [, 1, 2]; + Object.defineProperty(arr, "0", { + get: function () { + return "9"; + }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js new file mode 100644 index 0000000000..c6c99aba98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-8-b-iii-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + var proto = { 1: 1, 2: 2 }; + + Object.defineProperty(proto, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduce.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js new file mode 100644 index 0000000000..6bea23e0fa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.21-8-b-iii-1-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + var arr = [, 1, 2]; + + arr.reduce(callbackfn); + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.js new file mode 100644 index 0000000000..650ecae258 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.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: "15.4.4.21-8-b-iii-1-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === undefined); + } + } + + var obj = { 1: 1, 2: 2, length: 3 }; + + Object.defineProperty(obj, "0", { + set: function () { }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.js new file mode 100644 index 0000000000..4143da2c17 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.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: "15.4.4.21-8-b-iii-1-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === undefined); + } + } + + var arr = [, 1, 2]; + + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js new file mode 100644 index 0000000000..916a4a34ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-8-b-iii-1-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === undefined); + } + } + + try { + Object.prototype[0] = 0; + + var obj = { 1: 1, 2: 2, length: 3 }; + + Object.defineProperty(obj, "0", { + set: function () { }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + } finally { + delete Object.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js new file mode 100644 index 0000000000..79e67f750c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-8-b-iii-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + var arr = [0, 1, 2]; + arr.reduce(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js new file mode 100644 index 0000000000..40608c375a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.21-8-b-iii-1-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === undefined); + } + } + + try { + Array.prototype[0] = 0; + var arr = [, 1, 2]; + Object.defineProperty(arr, "0", { + set: function () { }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult; + + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js new file mode 100644 index 0000000000..eee30c9be8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.21-8-b-iii-1-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === undefined); + } + } + + var proto = { 1: 1, 2: 2 }; + + Object.defineProperty(proto, "0", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduce.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js new file mode 100644 index 0000000000..09ab41ce26 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-8-b-iii-1-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === undefined); + } + } + + try { + Object.defineProperty(Array.prototype, "0", { + set: function () { }, + configurable: true + }); + + var arr = [, 1, 2]; + + arr.reduce(callbackfn); + return testResult; + + } finally { + delete Array.prototype[0]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js new file mode 100644 index 0000000000..b685e4329b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-8-b-iii-1-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js", + + description: "Array.prototype.reduce - This object is the global object which contains index property", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 0; + fnGlobalObject()[1] = 1; + fnGlobalObject()[2] = 2; + fnGlobalObject().length = 3; + + Array.prototype.reduce.call(fnGlobalObject(), callbackfn); + return testResult; + + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js new file mode 100644 index 0000000000..b498181b2f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.21-8-b-iii-1-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js", + + description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + var func = function (a, b, c) { + Array.prototype.reduce.call(arguments, callbackfn); + }; + + func(0, 1); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js new file mode 100644 index 0000000000..1c16367092 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.21-8-b-iii-1-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js", + + description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2) { + testResult = (prevVal === 1); + } + } + + var func = function (a, b, c) { + delete arguments[0]; + Array.prototype.reduce.call(arguments, callbackfn); + }; + + func(0, 1, 2); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js new file mode 100644 index 0000000000..8f556682ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-8-b-iii-1-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js", + + description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 3) { + testResult = (prevVal === 2); + } + } + + var func = function (a, b, c) { + delete arguments[0]; + delete arguments[1]; + Array.prototype.reduce.call(arguments, callbackfn); + }; + + func(0, 1, 2, 3); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js new file mode 100644 index 0000000000..45324a6aca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-8-b-iii-1-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js", + + description: "Array.prototype.reduce - applied to String object, which implements its own property get method", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "0"); + } + } + + var str = new String("012"); + Array.prototype.reduce.call(str, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js new file mode 100644 index 0000000000..0acf9f6539 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-8-b-iii-1-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js", + + description: "Array.prototype.reduce - applied to Function object which implements its own property get method", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + var obj = function (a, b, c) { + return a + b + c; + }; + obj[0] = 0; + obj[1] = 1; + obj[2] = 2; + obj[3] = 3; + + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js new file mode 100644 index 0000000000..1e42d1ae87 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-8-b-iii-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "9"); + } + } + + var proto = { 0: 0, 1: 1, 2: 2, length: 3 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = "9"; + child[1] = "1"; + child.length = 3; + + Array.prototype.reduce.call(child, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js new file mode 100644 index 0000000000..4056e4143b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.21-8-b-iii-1-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js", + + description: "Array.prototype.reduce - element changed by getter on current iterations is observed in subsequent iterations on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var arr = [, , 2]; + var preIterVisible = false; + + Object.defineProperty(arr, "0", { + get: function () { + preIterVisible = true; + return 0; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return 1; + } else { + return 100; + } + }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js new file mode 100644 index 0000000000..8008ba0d48 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.21-8-b-iii-1-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js", + + description: "Array.prototype.reduce - element changed by getter on current iterations is observed in subsequent iterations on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var obj = { length: 2 }; + var preIterVisible = false; + + Object.defineProperty(obj, "0", { + get: function () { + preIterVisible = true; + return 0; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return 1; + } else { + return 100; + } + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js new file mode 100644 index 0000000000..e488070955 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.21-8-b-iii-1-32", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js", + + description: "Array.prototype.reduce - exception in getter terminates iteration on an Array-like object", + + test: function testcase() { + + var accessed = false; + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx >= 1) { + accessed = true; + testResult = (prevVal === 0); + } + } + + var obj = { 2: 2, 1: 1, length: 3 }; + Object.defineProperty(obj, "0", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed && !testResult; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js new file mode 100644 index 0000000000..8433a8d68c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-8-b-iii-1-33", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js", + + description: "Array.prototype.reduce - exception in getter terminates iteration on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx >= 1) { + accessed = true; + testResult = (prevVal === 0); + } + } + + var arr = [, 1, 2]; + + Object.defineProperty(arr, "0", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + arr.reduce(callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed && !testResult; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js new file mode 100644 index 0000000000..13829dc9cf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-8-b-iii-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + try { + Array.prototype[0] = "9"; + [0, 1, 2].reduce(callbackfn); + return testResult; + + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js new file mode 100644 index 0000000000..aa776aa285 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.21-8-b-iii-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "9"); + } + } + + var proto = {}; + + Object.defineProperty(proto, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + Object.defineProperty(child, "0", { + value: "9", + configurable: true + }); + child[1] = "1"; + + Array.prototype.reduce.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js new file mode 100644 index 0000000000..188fa4a2ab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.21-8-b-iii-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + try { + Object.defineProperty(Array.prototype, "0", { + get: function () { + return "5"; + }, + configurable: true + }); + + [0, 1, 2].reduce(callbackfn); + return testResult; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.js new file mode 100644 index 0000000000..ed13875c40 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.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: "15.4.4.21-8-b-iii-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + var proto = { 0: 0, 1: 1, 2: 2, length: 3 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduce.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js new file mode 100644 index 0000000000..3333459a9b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-8-b-iii-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + try { + Array.prototype[0] = 0; + Array.prototype[1] = 1; + Array.prototype[2] = 2; + [, , ,].reduce(callbackfn); + return testResult; + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js new file mode 100644 index 0000000000..2eddcfec49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.21-8-b-iii-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 0); + } + } + + var obj = { 1: 1, 2: 2, length: 3 }; + Object.defineProperty(obj, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js new file mode 100644 index 0000000000..666d05c434 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-8-c-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js", + +description: "Array.prototype.reduce throws TypeError when Array is empty and initialValue is not present", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + } + + var arr = new Array(10); + try { + arr.reduce(callbackfn); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js new file mode 100644 index 0000000000..87af7d08f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-8-c-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js", + +description: "Array.prototype.reduce throws TypeError when elements assigned values are deleted by reducing array length and initialValue is not present", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + } + + var arr = new Array(10); + arr[9] = 1; + arr.length = 5; + try { + arr.reduce(callbackfn); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js new file mode 100644 index 0000000000..2cdeb05ffe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.21-8-c-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js", + +description: "Array.prototype.reduce throws TypeError when elements assigned values are deleted and initialValue is not present", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + } + + var arr = [1,2,3,4,5]; + delete arr[0]; + delete arr[1]; + delete arr[2]; + delete arr[3]; + delete arr[4]; + try { + arr.reduce(callbackfn); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js new file mode 100644 index 0000000000..4db1a126d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-8-c-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js", + + description: "Array.prototype.reduce doesn't throw error when array has no own properties but prototype contains a single property", + + test: function testcase() { + + var arr = [, , , ]; + + try { + Array.prototype[1] = "prototype"; + arr.reduce(function () { }); + return true; + } catch (ex) { + return false; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js new file mode 100644 index 0000000000..2bfa914ba7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.21-8-c-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js", + + description: "Array.prototype.reduce - if exception occurs, it occurs after any side-effects that might be produced by step 2", + + test: function testcase() { + + var obj = { }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, function () { }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js new file mode 100644 index 0000000000..e4cff6c5b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js @@ -0,0 +1,61 @@ +/// Copyright (c) 2009 Microsoft Corporation +/// 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: "15.4.4.21-8-c-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js", + + description: "Array.prototype.reduce - if exception occurs, it occurs after any side-effects that might be produced by step 3", + + test: function testcase() { + + var obj = {}; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, function () { }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js new file mode 100644 index 0000000000..e30ddac30d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.21-8-c-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js", + + description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, function () { }); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js new file mode 100644 index 0000000000..5e574c02cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js @@ -0,0 +1,58 @@ +/// Copyright (c) 2009 Microsoft Corporation +/// 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: "15.4.4.21-8-c-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js", + + description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, function () { }); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.js new file mode 100644 index 0000000000..5235ac0750 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.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: "15.4.4.21-9-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.js", + + description: "Array.prototype.reduce doesn't consider new elements added to array after it is called", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + arr[5] = 6; + arr[2] = 3; + return prevVal + curVal; + } + + var arr = [1, 2, , 4, '5']; + return arr.reduce(callbackfn) === "105"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js new file mode 100644 index 0000000000..c746d78b32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.21-9-10", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js", + +description: "Array.prototype.reduce called with an initial value doesn't consider new elements added to array after it is called", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) { + arr[5] = 6; + arr[2] = 3; + return prevVal + curVal; + } + + var arr = [1,2,,4,'5']; + return arr.reduce(callbackfn, "") === "12345"; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js new file mode 100644 index 0000000000..0250c88078 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-9-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js", + +description: "Array.prototype.reduce considers new value of elements in array after it is called", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + arr[3] = -2; + arr[4] = -1; + return prevVal + curVal; + } + + var arr = [1,2,3,4,5]; + if(arr.reduce(callbackfn) === 3) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js new file mode 100644 index 0000000000..15d7f0f7f0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-9-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js", + +description: "Array.prototype.reduce doesn't visit deleted elements in array after the call", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + delete arr[3]; + delete arr[4]; + return prevVal + curVal; + } + + var arr = ['1',2,3,4,5]; + if(arr.reduce(callbackfn) === "123" ) // two elements deleted + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js new file mode 100644 index 0000000000..5a4a1b1940 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-9-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js", + +description: "Array.prototype.reduce doesn't visit deleted elements when Array.length is decreased", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + arr.length = 2; + return prevVal + curVal; + } + + var arr = [1,2,3,4,5]; + if(arr.reduce(callbackfn) === 3 ) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js new file mode 100644 index 0000000000..01c3c7ebe2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-9-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js", + +description: "Array.prototype.reduce - callbackfn not called for array with one element", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(prevVal, curVal, idx, obj) + { + callCnt++; + return 2; + } + + var arr = [1]; + if(arr.reduce(callbackfn) === 1 && callCnt === 0 ) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js new file mode 100644 index 0000000000..eef19d4f51 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.21-9-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js", + +description: "Array.prototype.reduce visits deleted element in array after the call when same index is also present in prototype", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + delete arr[3]; + delete arr[4]; + return prevVal + curVal; + } + + Array.prototype[4] = 5; + var arr = ['1',2,3,4,5]; + var res = arr.reduce(callbackfn); + delete Array.prototype[4]; + + if(res === "1235" ) //one element acually deleted + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.js new file mode 100644 index 0000000000..164b15c679 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.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: "15.4.4.21-9-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.js", + + description: "Array.prototype.reduce stops calling callbackfn once the array is deleted during the call", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + delete o.arr; + return prevVal + curVal; + } + + var o = new Object(); + o.arr = ['1', 2, 3, 4, 5]; + return o.arr.reduce(callbackfn) === "12345" && !o.hasOwnProperty("arr"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js new file mode 100644 index 0000000000..f453aea3e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-9-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js", + + description: "Array.prototype.reduce - no observable effects occur if 'len' is 0", + + test: function testcase() { + + var accessed = false; + var callbackAccessed = false; + function callbackfn() { + callbackAccessed = true; + } + + var obj = { length: 0 }; + + Object.defineProperty(obj, "0", { + get: function () { + accessed = true; + return 10; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, function () { }, "initialValue"); + return !accessed && !callbackAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js new file mode 100644 index 0000000000..7a39332733 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.21-9-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js", + + description: "Array.prototype.reduce - modifications to length don't change number of iterations in step 9", + + test: function testcase() { + var called = 0; + function callbackfn(accum, val, idx, obj) { + called++; + return accum + val; + } + + var arr = [0, 1, 2, 3]; + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 2; + return 0; + }, + configurable: true + }); + + var newAccum = arr.reduce(callbackfn, "initialValue"); + + return newAccum === "initialValue01" && called === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js new file mode 100644 index 0000000000..33b9d96974 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.21-9-b-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js", + +description: "Array.prototype.reduce returns initialvalue when Array is empty and initialValue is present", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + } + + var arr = new Array(10); + + if(arr.reduce(callbackfn,5) === 5) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js new file mode 100644 index 0000000000..1faf194294 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.21-9-b-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js", + + description: "Array.prototype.reduce - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array-like Object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 3) { + testResult = false; + } + } + + var obj = { 2: 2, length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete Object.prototype[3]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[3] = 1; + Array.prototype.reduce.call(obj, callbackfn); + return testResult && accessed; + } finally { + delete Object.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js new file mode 100644 index 0000000000..a903ffe247 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.21-9-b-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js", + + description: "Array.prototype.reduce - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [, , , 3]; + Object.defineProperty(arr, "0", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.reduce(callbackfn); + return testResult && accessed; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js new file mode 100644 index 0000000000..5caa31f9bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-9-b-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js", + + description: "Array.prototype.reduce - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + + var obj = { 0: 0, 1: 111, 4: 10, length: 10 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js new file mode 100644 index 0000000000..ace190cc79 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.21-9-b-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js", + + description: "Array.prototype.reduce - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + var arr = [0, 111]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.reduce(callbackfn); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js new file mode 100644 index 0000000000..a80784e7a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-9-b-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js", + + description: "Array.prototype.reduce - decreasing length of array in step 8 causes deleted index property not to be visited", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 2) { + testResult = false; + } + } + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 2; + return 0; + }, + configurable: true + }); + + arr.reduce(callbackfn); + + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js new file mode 100644 index 0000000000..29f29cd3c6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.21-9-b-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js", + + description: "Array.prototype.reduce - decreasing length of array with prototype property in step 8 causes prototype index property to be visited", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 2 && val === "prototype") { + testResult = true; + } + } + var arr = [0, 1, 2, 3]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.reduce(callbackfn); + + return testResult; + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js new file mode 100644 index 0000000000..466911d3c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.21-9-b-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js", + + description: "Array.prototype.reduce - decreasing length of array in step 8 does not delete non-configurable properties", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 2 && val === "unconfigurable") { + testResult = true; + } + } + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.reduce(callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js new file mode 100644 index 0000000000..953c27231c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-9-b-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js", + + description: "Array.prototype.reduce - properties added into own object are visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 3 && val === 3) { + testResult = true; + } + } + + var obj = { length: 5 }; + + Object.defineProperty(obj, "1", { + get: function () { + Object.defineProperty(obj, "3", { + get: function () { + return 3; + }, + configurable: true + }); + return 1; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js new file mode 100644 index 0000000000..83c6f2dcdb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-9-b-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js", + + description: "Array.prototype.reduce - properties added into own object are visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + arr.reduce(callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js new file mode 100644 index 0000000000..6ddf1888f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-b-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js", + + description: "Array.prototype.reduce - properties added to prototype are visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 6.99) { + testResult = true; + } + } + + var obj = { length: 6 }; + + Object.defineProperty(obj, "0", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, callbackfn, "initialValue"); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js new file mode 100644 index 0000000000..2619e14a39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.21-9-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js", + + description: "Array.prototype.reduce - added properties in step 2 are visible here", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 2 && val === "2") { + testResult = true; + } + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + obj[2] = "2"; + return 3; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn, "initialValue"); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js new file mode 100644 index 0000000000..9d78e05acd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-b-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js", + + description: "Array.prototype.reduce - properties can be added to prototype are visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 6.99) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + arr.reduce(callbackfn, "initialValue"); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js new file mode 100644 index 0000000000..3910a62039 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-b-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js", + + description: "Array.prototype.reduce - deleting own property causes deleted index property not to be visited on an Array-like object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var obj = { 5: 10, length: 10 }; + + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn, "initialValue"); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js new file mode 100644 index 0000000000..00f28416f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-b-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js", + + description: "Array.prototype.reduce - deleting own property causes deleted index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [1, 2, 4]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + arr.reduce(callbackfn, "initialValue"); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js new file mode 100644 index 0000000000..d08de8ecbb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.21-9-b-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js", + + description: "Array.prototype.reduce - deleting property of prototype causes deleted index property not to be visited on an Array-like Object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 3) { + testResult = false; + } + } + + var obj = { 2: 2, length: 20 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete Object.prototype[3]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[3] = 1; + Array.prototype.reduce.call(obj, callbackfn, "initialValue"); + return testResult && accessed; + } finally { + delete Object.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js new file mode 100644 index 0000000000..fd20335bd4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.21-9-b-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js", + + description: "Array.prototype.reduce - deleting property of prototype causes deleted index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [0, , , 3]; + Object.defineProperty(arr, "0", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.reduce(callbackfn, "initialValue"); + return testResult && accessed; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js new file mode 100644 index 0000000000..4df7a0098a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-9-b-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js", + + description: "Array.prototype.reduce - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + + var obj = { 0: 0, 1: 111, 4: 10, length: 10 }; + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + Array.prototype.reduce.call(obj, callbackfn, "initialValue"); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js new file mode 100644 index 0000000000..526b81428a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.21-9-b-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js", + + description: "Array.prototype.reduce - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + var arr = [0, 111]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.reduce(callbackfn, "initialValue"); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js new file mode 100644 index 0000000000..a8f94fc911 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-9-b-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js", + + description: "Array.prototype.reduce - decreasing length of array causes deleted index property not to be visited", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 2) { + testResult = false; + } + } + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 2; + return 0; + }, + configurable: true + }); + + arr.reduce(callbackfn, "initialValue"); + + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js new file mode 100644 index 0000000000..8581a67ab2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.21-9-b-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js", + + description: "Array.prototype.reduce - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 2 && val === "prototype") { + testResult = true; + } + } + var arr = [0, 1, 2, 3]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.reduce(callbackfn, "initialValue"); + + return testResult; + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js new file mode 100644 index 0000000000..0cb63ef967 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.21-9-b-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js", + + description: "Array.prototype.reduce - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 2 && val === "unconfigurable") { + testResult = true; + } + } + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "0", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.reduce(callbackfn, "initialValue"); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js new file mode 100644 index 0000000000..39238b8c2d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-9-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js", + + description: "Array.prototype.reduce - deleted properties in step 2 are visible here", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 2) { + testResult = false; + } + } + + var obj = { 2: "2", 3: 10 }; + + Object.defineProperty(obj, "length", { + get: function () { + delete obj[2]; + return 5; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn, "initialValue"); + + return accessed && testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js new file mode 100644 index 0000000000..62f51e174f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-9-b-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js", + + description: "Array.prototype.reduce - properties added into own object in step 8 are visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 3 && val === 3) { + testResult = true; + } + } + + var obj = { length: 5 }; + + Object.defineProperty(obj, "1", { + get: function () { + Object.defineProperty(obj, "3", { + get: function () { + return 3; + }, + configurable: true + }); + return 1; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js new file mode 100644 index 0000000000..471be11d6c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-9-b-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js", + + description: "Array.prototype.reduce - properties added into own object in step 8 are visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 1) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js new file mode 100644 index 0000000000..d7309d907c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-b-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js", + + description: "Array.prototype.reduce - properties added to prototype in step 8 are visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 6.99) { + testResult = true; + } + } + + var obj = { length: 6 }; + + Object.defineProperty(obj, "0", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, callbackfn); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js new file mode 100644 index 0000000000..2840007ffc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-b-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js", + + description: "Array.prototype.reduce - properties added to prototype in step 8 are visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(accum, val, idx, obj) { + if (idx === 1 && val === 6.99) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "0", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + arr.reduce(callbackfn); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js new file mode 100644 index 0000000000..ce7b510231 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-b-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js", + + description: "Array.prototype.reduce - deleting own property in step 8 causes deleted index property not to be visited on an Array-like object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var obj = { 5: 10, length: 10 }; + + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(obj, "0", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js new file mode 100644 index 0000000000..5fd43deab3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.21-9-b-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js", + + description: "Array.prototype.reduce - deleting own property in step 8 causes deleted index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(accum, val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [1, 2, 4]; + + Object.defineProperty(arr, "0", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + arr.reduce(callbackfn); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js new file mode 100644 index 0000000000..53a653f68b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-9-c-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js", + +description: "Array.prototype.reduce - callbackfn not called for indexes never been assigned values", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(prevVal, curVal, idx, obj) + { + callCnt++; + return curVal; + } + + var arr = new Array(10); + arr[0] = arr[1] = undefined; //explicitly assigning a value + if( arr.reduce(callbackfn) === undefined && callCnt === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js new file mode 100644 index 0000000000..05ef0baa53 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var obj = { 0: 0, 1: 1, 2: 2, length: 2 }; + Array.prototype.reduce.call(obj, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js new file mode 100644 index 0000000000..3b7bdc7e4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.21-9-c-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + arr.reduce(callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js new file mode 100644 index 0000000000..aaf4ba46fb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.21-9-c-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "11"); + } + } + + var proto = { 0: 0, 1: 1, 2: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "1", { + get: function () { + return "11"; + }, + configurable: true + }); + + Array.prototype.reduce.call(child, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js new file mode 100644 index 0000000000..b6a21ebb34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.21-9-c-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "11"); + } + } + + try { + Array.prototype[1] = 1; + var arr = [0, ,2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "11"; + }, + configurable: true + }); + + arr.reduce(callbackfn, initialValue); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js new file mode 100644 index 0000000000..4191b45291 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.21-9-c-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "11"); + } + } + + var proto = { 0: 0, 2: 2}; + + Object.defineProperty(proto, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "1", { + get: function () { + return "11"; + }, + configurable: true + }); + + Array.prototype.reduce.call(child, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js new file mode 100644 index 0000000000..7870ce7ffb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.21-9-c-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "11"); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + var arr = [0, ,2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "11"; + }, + configurable: true + }); + arr.reduce(callbackfn, initialValue); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js new file mode 100644 index 0000000000..80664cadbd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.21-9-c-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var proto = { 0: 0, 2: 2 }; + + Object.defineProperty(proto, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduce.call(child, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js new file mode 100644 index 0000000000..5bbc051d1e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.21-9-c-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + var arr = [0, , 2, ]; + + arr.reduce(callbackfn, initialValue); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js new file mode 100644 index 0000000000..21ba467bbf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.21-9-c-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === undefined); + } + } + + var obj = { 0: 0, 2: 2, length: 3 }; + + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js new file mode 100644 index 0000000000..04857f9282 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-9-c-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === undefined); + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "1", { + set: function () { }, + configurable: true + }); + + arr.reduce(callbackfn, initialValue); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js new file mode 100644 index 0000000000..10ad7009e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-c-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === undefined); + } + } + + try { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + var obj = { 0: 0, 2: 2, length: 3 }; + + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn, initialValue); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js new file mode 100644 index 0000000000..b694ee120e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.21-9-c-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var arr = [0, 1]; + arr.reduce(callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js new file mode 100644 index 0000000000..34b284d521 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.21-9-c-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === undefined); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 11; + }, + configurable: true + }); + + var arr = [0, , 2]; + Object.defineProperty(arr, "1", { + set: function () { }, + configurable: true + }); + + arr.reduce(callbackfn, initialValue); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js new file mode 100644 index 0000000000..febf7e3490 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-9-c-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === undefined); + } + } + + var proto = { 0: 0, 2: 2 }; + + Object.defineProperty(proto, "1", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduce.call(child, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js new file mode 100644 index 0000000000..be3360b776 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-9-c-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === undefined); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + set: function () { }, + configurable: true + }); + + var arr = [0, , 2]; + + arr.reduce(callbackfn, initialValue); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js new file mode 100644 index 0000000000..a8473bd9a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.21-9-c-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js", + + description: "Array.prototype.reduce - This object is the global object which contains index property", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 0; + fnGlobalObject()[1] = 1; + fnGlobalObject().length = 2; + + Array.prototype.reduce.call(fnGlobalObject(), callbackfn, initialValue); + return testResult; + + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js new file mode 100644 index 0000000000..ed6571091f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.21-9-c-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js", + + description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var func = function (a, b, c) { + Array.prototype.reduce.call(arguments, callbackfn, initialValue); + }; + + func(0, 1); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js new file mode 100644 index 0000000000..574a8112e6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.21-9-c-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js", + + description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2) { + testResult = (curVal === 2); + } + } + + var func = function (a, b, c) { + Array.prototype.reduce.call(arguments, callbackfn, initialValue); + }; + + func(0, 1, 2); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js new file mode 100644 index 0000000000..189dac36df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.21-9-c-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js", + + description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 3) { + testResult = (curVal === 3); + } + } + + var func = function (a, b, c) { + Array.prototype.reduce.call(arguments, callbackfn, initialValue); + }; + + func(0, 1, 2, 3); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js new file mode 100644 index 0000000000..724a782861 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.21-9-c-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js", + + description: "Array.prototype.reduce - applied to String object, which implements its own property get method", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "1"); + } + } + + var str = new String("012"); + + Array.prototype.reduce.call(str, callbackfn, initialValue); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js new file mode 100644 index 0000000000..c18e3349ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.21-9-c-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js", + + description: "Array.prototype.reduce - applied to Function object which implements its own property get method", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var obj = function (a, b, c) { + return a + b + c; + }; + obj[0] = 0; + obj[1] = 1; + obj[2] = 2; + obj[3] = 3; + + Array.prototype.reduce.call(obj, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js new file mode 100644 index 0000000000..9e5ed7ea4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.21-9-c-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "11"); + } + } + + var proto = { 0: 0, 1: 1, 2: 2, length: 2 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[1] = "11"; + child[2] = "22"; + child.length = 3; + + Array.prototype.reduce.call(child, callbackfn, initialValue); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js new file mode 100644 index 0000000000..407a3dea64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.21-9-c-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js", + + description: "Array.prototype.reduce - element changed by getter on previous iterations is observed on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var arr = [, , 2]; + var preIterVisible = false; + + Object.defineProperty(arr, "0", { + get: function () { + preIterVisible = true; + return 0; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return 1; + } else { + return 100; + } + }, + configurable: true + }); + + arr.reduce(callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js new file mode 100644 index 0000000000..b5a964d756 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js @@ -0,0 +1,72 @@ +/// 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: "15.4.4.21-9-c-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js", + + description: "Array.prototype.reduce - element changed by getter on previous iterations is observed on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var obj = { 2: 2, length: 3 }; + var preIterVisible = false; + + Object.defineProperty(obj, "0", { + get: function () { + preIterVisible = true; + return 0; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return 1; + } else { + return "11"; + } + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn, initialValue); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js new file mode 100644 index 0000000000..09ec8cf9fa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.21-9-c-i-32", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js", + + description: "Array.prototype.reduce - unnhandled exceptions happened in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var accessed = false; + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx >= 1) { + accessed = true; + testResult = (curVal >= 1); + } + } + + var obj = { 0: 0, 2: 2, length: 3 }; + Object.defineProperty(obj, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + Array.prototype.reduce.call(obj, callbackfn, initialValue); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed && !testResult; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js new file mode 100644 index 0000000000..7ba076b7ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.21-9-c-i-33", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js", + + description: "Array.prototype.reduce - unnhandled exceptions happened in getter terminate iteration on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx >= 1) { + accessed = true; + testResult = (curVal >= 1); + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + arr.reduce(callbackfn, initialValue); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed && !testResult; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js new file mode 100644 index 0000000000..130edc01cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-9-c-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + Array.prototype[1] = "3"; + [0, 1, 2].reduce(callbackfn, initialValue); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js new file mode 100644 index 0000000000..b5b7362c17 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.21-9-c-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 0) { + testResult = (curVal === "9"); + } + } + + var proto = {}; + + Object.defineProperty(proto, "0", { + get: function () { + return 0; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + + Object.defineProperty(child, "0", { + value: "9", + configurable: true + }); + + child[1] = "1"; + + Array.prototype.reduce.call(child, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js new file mode 100644 index 0000000000..39fa98ca78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.21-9-c-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js", + + description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return "9"; + }, + configurable: true + }); + [0, 1, 2].reduce(callbackfn, initialValue); + return testResult; + + } finally { + delete Array.prototype[1]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js new file mode 100644 index 0000000000..fa2cf1e83f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.21-9-c-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var proto = { 0: 0, 1: 1, 2: 2, length: 3 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduce.call(child, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js new file mode 100644 index 0000000000..b371ffcb22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.21-9-c-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js", + + description: "Array.prototype.reduce - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + Array.prototype[0] = 0; + Array.prototype[1] = 1; + Array.prototype[2] = 2; + [, , , ].reduce(callbackfn, initialValue); + + return testResult; + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js new file mode 100644 index 0000000000..595e7564ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.21-9-c-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js", + + description: "Array.prototype.reduce - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var obj = { 0: 0, 2: 2, length: 3 }; + Object.defineProperty(obj, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + Array.prototype.reduce.call(obj, callbackfn, initialValue); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js new file mode 100644 index 0000000000..f5ddc8b945 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.21-9-c-ii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js", + +description: "Array.prototype.reduce - callbackfn called with correct parameters (initialvalue not passed)", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + if(idx > 0 && obj[idx] === curVal && obj[idx-1] === prevVal) + return curVal; + else + return false; + } + + var arr = [0,1,true,null,new Object(),"five"]; + if( arr.reduce(callbackfn) === "five") + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js new file mode 100644 index 0000000000..b5c533a6d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-9-c-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js", + + description: "Array.prototype.reduce - callbackfn is called with 1 formal parameter", + + test: function testcase() { + + var result = false; + function callbackfn(prevVal) { + result = (prevVal === 1); + } + + [11].reduce(callbackfn, 1); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js new file mode 100644 index 0000000000..60f5fcf07e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-9-c-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js", + + description: "Array.prototype.reduce - callbackfn is called with 2 formal parameter", + + test: function testcase() { + + var result = false; + function callbackfn(prevVal, curVal) { + result = (curVal > 10 && 1 === prevVal); + } + + [11].reduce(callbackfn, 1); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js new file mode 100644 index 0000000000..50d010e396 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-9-c-ii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js", + + description: "Array.prototype.reduce - callbackfn is called with 3 formal parameter", + + test: function testcase() { + + var result = false; + function callbackfn(prevVal, curVal, idx) { + result = (prevVal === 1 && arguments[3][idx] === curVal); + } + + [11].reduce(callbackfn, 1); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js new file mode 100644 index 0000000000..f08442b3c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-9-c-ii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js", + + description: "Array.prototype.reduce - callbackfn is called with 4 formal parameter", + + test: function testcase() { + + var result = false; + function callbackfn(prevVal, curVal, idx, obj) { + result = (prevVal === 1 && obj[idx] === curVal); + } + + [11].reduce(callbackfn, 1); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js new file mode 100644 index 0000000000..c621fd9b50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-9-c-ii-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js", + + description: "Array.prototype.reduce - callbackfn that uses arguments", + + test: function testcase() { + + var result = false; + function callbackfn() { + result = (arguments[0] === 1 && arguments[3][arguments[2]] === arguments[1]); + } + + [11].reduce(callbackfn, 1); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js new file mode 100644 index 0000000000..19dab75817 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.21-9-c-ii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js", + + description: "Array.prototype.reduce - non-indexed properties are not called", + + test: function testcase() { + + var accessed = false; + var result1 = true; + var result2 = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (curVal === 8) { + result1 = false; + } + + if (prevVal === 8) { + result2 = false; + } + } + + var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 }; + + Array.prototype.reduce.call(obj, callbackfn, 1); + return result1 && result2 && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js new file mode 100644 index 0000000000..156ea72ec1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.21-9-c-ii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js", + + description: "Array.prototype.reduce - 'accumulator' used for current iteration is the result of previous iteration on an Array", + + test: function testcase() { + + var result = true; + var accessed = false; + var preIteration = 1; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (preIteration !== prevVal) { + result = false; + } + preIteration = curVal; + return curVal; + } + + [11, 12, 13].reduce(callbackfn, 1); + return result && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js new file mode 100644 index 0000000000..444b52350f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js", + + description: "Array.prototype.reduce - value of 'accumulator' used for first iteration is the value of 'initialValue' when it is present on an Array-like object", + + test: function testcase() { + + var result = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 0) { + result = (arguments[0] === 1); + } + } + + var obj = { 0: 11, 1: 9, length: 2 }; + + Array.prototype.reduce.call(obj, callbackfn, 1); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js new file mode 100644 index 0000000000..0e9554878b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js", + + description: "Array.prototype.reduce - value of 'accumulator' used for first iteration is the value of least index property which is not undefined when 'initialValue' is not present on an Array", + + test: function testcase() { + + var called = 0; + var result = false; + function callbackfn(prevVal, curVal, idx, obj) { + called++; + if (idx === 1) { + result = (prevVal === 11) && curVal === 9; + } + } + + [11, 9].reduce(callbackfn); + return result && called === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js new file mode 100644 index 0000000000..88b9c94775 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.21-9-c-ii-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js", + +description: "Array.prototype.reduce - callbackfn called with correct parameters (initialvalue passed)", + +test: function testcase() { + + var bParCorrect = false; + function callbackfn(prevVal, curVal, idx, obj) + { + if(idx === 0 && obj[idx] === curVal && prevVal === initialValue) + return curVal; + else if(idx > 0 && obj[idx] === curVal && obj[idx-1] === prevVal) + return curVal; + else + return false; + } + + var arr = [0,1,true,null,new Object(),"five"]; + var initialValue = 5.5; + if( arr.reduce(callbackfn,initialValue) === "five") + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js new file mode 100644 index 0000000000..885e1a9375 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js", + + description: "Array.prototype.reduce - undefined can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return typeof prevVal === "undefined"; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, undefined) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js new file mode 100644 index 0000000000..b3860ccfca --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js", + + description: "Array.prototype.reduce - null can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === null; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, null) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js new file mode 100644 index 0000000000..7081d51a25 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js", + + description: "Array.prototype.reduce - boolean primitive can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === false; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, false) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js new file mode 100644 index 0000000000..793ef5d0b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js", + + description: "Array.prototype.reduce - number primitive can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === 12; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, 12) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js new file mode 100644 index 0000000000..e5f183c832 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js", + + description: "Array.prototype.reduce - string primitive can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === "hello_"; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, "hello_") === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js new file mode 100644 index 0000000000..6e7c8ba836 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js", + + description: "Array.prototype.reduce - Function object can be used as accumulator", + + test: function testcase() { + + var objFunction = function () { }; + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objFunction; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, objFunction) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js new file mode 100644 index 0000000000..eec31b47f9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js", + + description: "Array.prototype.reduce - Array object can be used as accumulator", + + test: function testcase() { + + var objArray = new Array(10); + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objArray; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, objArray) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js new file mode 100644 index 0000000000..925232e423 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js", + + description: "Array.prototype.reduce - String object can be used as accumulator", + + test: function testcase() { + + var objString = new String(); + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objString; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, objString) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js new file mode 100644 index 0000000000..936f057725 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js", + + description: "Array.prototype.reduce - Boolean object can be used as accumulator", + + test: function testcase() { + + var objBoolean = new Boolean(); + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objBoolean; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, objBoolean) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js new file mode 100644 index 0000000000..ae3e49d4fe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js", + + description: "Array.prototype.reduce - Number object can be used as accumulator", + + test: function testcase() { + + var objNumber = new Number(); + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objNumber; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, objNumber) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js new file mode 100644 index 0000000000..a9d5daa5aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js", + +description: "Array.prototype.reduce - callbackfn takes 4 arguments", + +test: function testcase() { + + var bCalled = false; + function callbackfn(prevVal, curVal, idx, obj) + { + bCalled = true; + if(prevVal === true && arguments.length === 4) + return true; + else + return false; + } + var arr = [0,1,2,3,4,5,6,7,8,9]; + if(arr.reduce(callbackfn,true) === true && bCalled === true) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js new file mode 100644 index 0000000000..1efa0566a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js", + + description: "Array.prototype.reduce - the Math object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === Math; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, Math) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js new file mode 100644 index 0000000000..06d1adf65a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js", + + description: "Array.prototype.reduce - Date object can be used as accumulator", + + test: function testcase() { + + var objDate = new Date(); + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objDate; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, objDate) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js new file mode 100644 index 0000000000..34a65c21b8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-32", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js", + + description: "Array.prototype.reduce - RegExp object can be used as accumulator", + + test: function testcase() { + + var objRegExp = new RegExp(); + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objRegExp; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, objRegExp) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js new file mode 100644 index 0000000000..46643f724f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-33", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js", + + description: "Array.prototype.reduce - the JSON can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === JSON; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, JSON) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js new file mode 100644 index 0000000000..d6917b4d13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.21-9-c-ii-34", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js", + + description: "Array.prototype.reduce - Error object can be used as accumulator", + + test: function testcase() { + + var objError = new RangeError(); + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objError; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, objError) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js new file mode 100644 index 0000000000..c73afa8eaf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-9-c-ii-35", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js", + + description: "Array.prototype.reduce - the Arguments object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var arg; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === arg; + } + + var obj = { 0: 11, length: 1 }; + + (function fun() { + arg = arguments; + }(10, 11, 12, 13)); + + return Array.prototype.reduce.call(obj, callbackfn, arg) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js new file mode 100644 index 0000000000..4d5c32fa98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.21-9-c-ii-37", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js", + + description: "Array.prototype.reduce - the global object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === fnGlobalObject(); + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduce.call(obj, callbackfn, fnGlobalObject()) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.js new file mode 100644 index 0000000000..c8903841e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.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: "15.4.4.21-9-c-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.js", + + description: "Array.prototype.reduce - k values are passed in acending numeric order on an Array", + + test: function testcase() { + + var arr = [0, 1, 2]; + var lastIdx = 0; + var result = true; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (lastIdx !== idx) { + result = false; + } else { + lastIdx++; + } + } + + arr.reduce(callbackfn, 11); + return result && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js new file mode 100644 index 0000000000..8e291d29bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.21-9-c-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js", + + description: "Array.prototype.reduce - k values are accessed during each iteration and not prior to starting the loop on an Array", + + test: function testcase() { + + var result = true; + var kIndex = []; + var called = 0; + + //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time. + function callbackfn(prevVal, curVal, idx, obj) { + //Each position should be visited one time, which means k is accessed one time during iterations. + called++; + if (typeof kIndex[idx] === "undefined") { + //when current position is visited, its previous index should has been visited. + if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") { + result = false; + } + kIndex[idx] = 1; + } else { + result = false; + } + } + + [11, 12, 13, 14].reduce(callbackfn, 1); + + return result && called === 4; + }, + + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js new file mode 100644 index 0000000000..34a32b1de5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.21-9-c-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js", + + description: "Array.prototype.reduce - unhandled exceptions happened in callbackfn terminate iteration", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 0) { + accessed = true; + } + if (idx === 0) { + throw new Error("Exception occurred in callbackfn"); + } + } + + var obj = { 0: 11, 4: 10, 10: 8, length: 20 }; + + try { + Array.prototype.reduce.call(obj, callbackfn, 1); + return false; + } catch (ex) { + return (ex instanceof Error) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js new file mode 100644 index 0000000000..97df29d49b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.21-9-c-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js", + + description: "Array.prototype.reduce - element changed by callbackfn on previous iterations is observed", + + test: function testcase() { + + var result = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 0) { + obj[idx + 1] = 8; + } + + if (idx === 1) { + result = (curVal === 8); + } + } + + var obj = { 0: 11, 1: 12, length: 2 }; + + Array.prototype.reduce.call(obj, callbackfn, 1); + return result; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js new file mode 100644 index 0000000000..6419914a65 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.21-9-c-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js", + + description: "Array.prototype.reduce - callbackfn is called with 0 formal parameter", + + test: function testcase() { + + var called = 0; + function callbackfn() { + called++; + } + + [11, 12].reduce(callbackfn, 1); + return 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduce); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js new file mode 100644 index 0000000000..9e9ca8e5ee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js @@ -0,0 +1,36 @@ +/// 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: "15.4.4.22-0-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js", + +description: "Array.prototype.reduceRight must exist as a function", + +test: function testcase() { + var f = Array.prototype.reduceRight; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js new file mode 100644 index 0000000000..0fe764a1b4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js @@ -0,0 +1,39 @@ +/// 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: "15.4.4.22-0-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js", + +description: "Array.prototype.reduceRight.length must be 1", + +test: function testcase() { + if (Array.prototype.reduceRight.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js new file mode 100644 index 0000000000..2fcdcb8103 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.22-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js", + + description: "Array.prototype.reduceRight applied to undefined throws a TypeError", + + test: function testcase() { + try { + Array.prototype.reduceRight.call(undefined); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js new file mode 100644 index 0000000000..3edafb3afd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js", + + description: "Array.prototype.reduceRight applied to the Math object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return '[object Math]' === Object.prototype.toString.call(obj); + } + + try { + Math.length = 1; + Math[0] = 1; + return Array.prototype.reduceRight.call(Math, callbackfn, 1) && accessed; + } finally { + delete Math[0]; + delete Math.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js new file mode 100644 index 0000000000..f8c55f8d71 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js", + + description: "Array.prototype.reduceRight applied to Date object", + + test: function testcase() { + + var obj = new Date(); + obj.length = 1; + obj[0] = 1; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj instanceof Date; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js new file mode 100644 index 0000000000..8c2b0df8dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js", + + description: "Array.prototype.reduceRight applied to RegExp object", + + test: function testcase() { + + var obj = new RegExp(); + obj.length = 1; + obj[0] = 1; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, o) { + accessed = true; + return o instanceof RegExp; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js new file mode 100644 index 0000000000..28eda5e404 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js", + + description: "Array.prototype.reduceRight applied to the JSON object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return ('[object JSON]' === Object.prototype.toString.call(obj)); + } + + try { + JSON.length = 1; + JSON[0] = 1; + return Array.prototype.reduceRight.call(JSON, callbackfn, 1) && accessed; + } finally { + delete JSON.length; + delete JSON[0]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js new file mode 100644 index 0000000000..4afbaabfe9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js", + + description: "Array.prototype.reduceRight applied to Error object", + + test: function testcase() { + + var obj = new Error(); + obj.length = 1; + obj[0] = 1; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, o) { + accessed = true; + return o instanceof Error; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js new file mode 100644 index 0000000000..af2bd6be78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js", + + description: "Array.prototype.reduceRight applied to the Arguments object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return '[object Arguments]' === Object.prototype.toString.call(obj); + } + + var obj = (function () { + return arguments; + }("a", "b")); + + return Array.prototype.reduceRight.call(obj, callbackfn, "a") && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js new file mode 100644 index 0000000000..163be654db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.22-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js", + + description: "Array.prototype.reduceRight applied to null throws a TypeError", + + test: function testcase() { + try { + Array.prototype.reduceRight.call(null); + return false; + } catch (e) { + return (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js new file mode 100644 index 0000000000..816c41b479 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js", + + description: "Array.prototype.reduceRight applied to boolean primitive", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj instanceof Boolean; + } + + try { + Boolean.prototype[0] = 1; + Boolean.prototype.length = 1; + return Array.prototype.reduceRight.call(false, callbackfn, 1) && accessed; + } finally { + delete Boolean.prototype[0]; + delete Boolean.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js new file mode 100644 index 0000000000..ca76b64b0c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js", + + description: "Array.prototype.reduceRight applied to Boolean object", + + test: function testcase() { + + var obj = new Boolean(true); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj instanceof Boolean; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js new file mode 100644 index 0000000000..6486ab859e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js", + + description: "Array.prototype.reduceRight applied to number primitive", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj instanceof Number; + } + + try { + Number.prototype[0] = 1; + Number.prototype.length = 1; + return Array.prototype.reduceRight.call(2.5, callbackfn, 1) && accessed; + } finally { + delete Number.prototype[0]; + delete Number.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js new file mode 100644 index 0000000000..caece69ff1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js", + + description: "Array.prototype.reduceRight applied to Number object", + + test: function testcase() { + + var obj = new Number(-128); + obj.length = 2; + obj[0] = 11; + obj[1] = 12; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, o) { + accessed = true; + return o instanceof Number; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js new file mode 100644 index 0000000000..05f11136e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js", + + description: "Array.prototype.reduceRight applied to string primitive", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj instanceof String; + } + + return Array.prototype.reduceRight.call("hello\nworld\\!", callbackfn, "h") && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js new file mode 100644 index 0000000000..1d92f76f62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js", + + description: "Array.prototype.reduceRight applied to String object", + + test: function testcase() { + + var obj = new String("hello\nworld\\!"); + var accessed = false; + + function callbackfn(prevVal, curVal, idx, o) { + accessed = true; + return o instanceof String; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, "h") && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js new file mode 100644 index 0000000000..408e434afd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js", + + description: "Array.prototype.reduceRight applied to Function object", + + test: function testcase() { + + var obj = function (a, b) { + return a + b; + }; + obj[0] = 11; + obj[1] = 9; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, o) { + accessed = true; + return o instanceof Function; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js new file mode 100644 index 0000000000..b973c594bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-10-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js", + +description: "Array.prototype.reduceRight doesn't mutate the Array on which it is called on", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + return 1; + } + var srcArr = [1,2,3,4,5]; + srcArr.reduceRight(callbackfn); + if(srcArr[0] === 1 && + srcArr[1] === 2 && + srcArr[2] === 3 && + srcArr[3] === 4 && + srcArr[4] === 5) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js new file mode 100644 index 0000000000..8055951fb2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-10-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js", + +description: "Array.prototype.reduceRight reduces array in descending order of indices", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + return prevVal + curVal; + } + var srcArr = ['1','2','3','4','5']; + if(srcArr.reduceRight(callbackfn) === '54321') + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js new file mode 100644 index 0000000000..a828d3efb9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.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: "15.4.4.22-10-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js", + +description: "Array.prototype.reduceRight - subclassed array with length 1", + +test: function testcase() { + foo.prototype = [1]; + function foo() {} + var f = new foo(); + + function cb(){} + if(f.reduceRight(cb) === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js new file mode 100644 index 0000000000..01489868bf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.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: "15.4.4.22-10-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js", + +description: "Array.prototype.reduceRight - subclassed array with length more than 1", + +test: function testcase() { + foo.prototype = new Array(0, 1, 2, 3); + function foo() {} + var f = new foo(); + + function cb(prevVal, curVal, idx, obj){return prevVal + curVal;} + if(f.reduceRight(cb) === 6) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js new file mode 100644 index 0000000000..dbf2b30fd7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-10-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js", + +description: "Array.prototype.reduceRight reduces array in descending order of indices(initialvalue present)", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + return prevVal + curVal; + } + var srcArr = ['1','2','3','4','5']; + if(srcArr.reduceRight(callbackfn,'6') === '654321') + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js new file mode 100644 index 0000000000..fdbef849e4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.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: "15.4.4.22-10-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js", + +description: "Array.prototype.reduceRight - subclassed array when initialvalue provided", + +test: function testcase() { + foo.prototype = new Array(0, 1, 2, 3); + function foo() {} + var f = new foo(); + + function cb(prevVal, curVal, idx, obj){return prevVal + curVal;} + if(f.reduceRight(cb,"4") === "43210") + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js new file mode 100644 index 0000000000..500febcfaa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.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: "15.4.4.22-10-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js", + +description: "Array.prototype.reduceRight - subclassed array when length to 1 and initialvalue provided", + +test: function testcase() { + foo.prototype = [1]; + function foo() {} + var f = new foo(); + + function cb(prevVal, curVal, idx, obj){return prevVal + curVal;} + if(f.reduceRight(cb,"4") === "41") + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js new file mode 100644 index 0000000000..a68457fed8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-10-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js", + +description: "Array.prototype.reduceRight doesn't visit expandos", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(prevVal, curVal, idx, obj) + { + callCnt++; + } + var srcArr = ['1','2','3','4','5']; + srcArr["i"] = 10; + srcArr[true] = 11; + + srcArr.reduceRight(callbackfn); + + if(callCnt == 4) + { + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js new file mode 100644 index 0000000000..24b8ee2973 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.22-2-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property", + + test: function testcase() { + + var accessed = false; + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: 2 + }; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js new file mode 100644 index 0000000000..3ef95e661a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.22-2-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an inherited accessor property", + + test: function testcase() { + + var accessed = false; + var Con = function () { }; + + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + var proto = {}; + + Object.defineProperty(proto, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + + return Array.prototype.reduceRight.call(child, callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js new file mode 100644 index 0000000000..ec3ecf89a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-2-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property without a get function", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return typeof obj.length === "undefined"; + } + + var obj = { + 0: 11, + 1: 12 + }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.reduceRight.call(obj, callbackfn, 111) === 111 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js new file mode 100644 index 0000000000..7180feb450 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.22-2-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js", + + description: "Array.prototype.reduceRight - 'length' is own accessor property without a get function that overrides an inherited accessor property", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return typeof obj.length === "undefined"; + } + + try { + Object.defineProperty(Object.prototype, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + var obj = { 0: 12, 1: 13 }; + Object.defineProperty(obj, "length", { + set: function () { }, + configurable: true + }); + + return Array.prototype.reduceRight.call(obj, callbackfn, 11) === 11 && !accessed; + } finally { + delete Object.prototype.length; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js new file mode 100644 index 0000000000..99905d0b15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.22-2-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js", + + description: "Array.prototype.reduceRight applied to the Array-like object that 'length' is inherited accessor property without a get function", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return curVal > 10; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 11; + child[1] = 12; + + return Array.prototype.reduceRight.call(child, callbackfn, 111) === 111 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js new file mode 100644 index 0000000000..83e38c8bab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-2-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js", + + description: "Array.prototype.reduceRight applied to the Array-like object that 'length' property doesn't exist", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return curVal > 10; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 111) === 111 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js new file mode 100644 index 0000000000..6ff14e3b76 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.22-2-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js", + + description: "Array.prototype.reduceRight - 'length' is property of the global object", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === fnGlobalObject().length; + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 12; + fnGlobalObject()[1] = 11; + fnGlobalObject()[2] = 9; + fnGlobalObject().length = 2; + return Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn, 111) && accessed; + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js new file mode 100644 index 0000000000..393e9a0762 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.22-2-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js", + + description: "Array.prototype.reduceRight applied to the Arguments object, which implements its own property get method", + + test: function testcase() { + + var arg; + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + var func = function (a, b) { + arg = arguments; + return Array.prototype.reduceRight.call(arguments, callbackfn, 11); + }; + + return func(12, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js new file mode 100644 index 0000000000..1838dc4a70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.22-2-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js", + + description: "Array.prototype.reduceRight applied to String object, which implements its own property get method", + + test: function testcase() { + + var accessed = false; + var str = new String("432"); + + function callbackfn(preVal, curVal, idx, obj) { + accessed = true; + return obj.length === 3; + } + + try { + String.prototype[3] = "1"; + return Array.prototype.reduceRight.call(str, callbackfn, 111) && accessed; + } finally { + delete String.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js new file mode 100644 index 0000000000..08a0d65fb6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.22-2-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js", + + description: "Array.prototype.reduceRight applied to Function object, which implements its own property get method", + + test: function testcase() { + + var accessed = false; + var fun = function (a, b) { + return a + b; + }; + fun[0] = 12; + fun[1] = 11; + fun[2] = 9; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + return Array.prototype.reduceRight.call(fun, callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js new file mode 100644 index 0000000000..8cf7875993 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-2-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js", + + description: "Array.prototype.reduceRight - 'length' is own data property on an Array", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + return [12, 11].reduceRight(callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js new file mode 100644 index 0000000000..3e889d481d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.22-2-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property that overrides an inherited data property", + + test: function testcase() { + + var accessed = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduceRight.call(child, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js new file mode 100644 index 0000000000..3de84281c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.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: "15.4.4.22-2-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js", + + description: "Array.prototype.reduceRight - 'length' is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var accessed = false; + var arrProtoLen; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + try { + arrProtoLen = Array.prototype.length; + Array.prototype.length = 0; + + return [12, 11].reduceRight(callbackfn, 11) && accessed; + } finally { + Array.prototype.length = arrProtoLen; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js new file mode 100644 index 0000000000..99994f963d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-2-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "length", { + value: 2, + configurable: true + }); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduceRight.call(child, callbackfn) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js new file mode 100644 index 0000000000..2437410f01 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.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: "15.4.4.22-2-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an inherited data property", + + test: function testcase() { + + var accessed = false; + var proto = { length: 2 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + function callbackfn1(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + return Array.prototype.reduceRight.call(child, callbackfn1, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js new file mode 100644 index 0000000000..219e9afe94 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.22-2-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property", + + test: function testcase() { + + var accessed = true; + var obj = {}; + obj[0] = 12; + obj[1] = 11; + obj[2] = 9; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + Object.defineProperty(obj, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js new file mode 100644 index 0000000000..b09dc6ceb1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.22-2-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + var proto = { length: 3 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduceRight.call(child, callbackfn, 11) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js new file mode 100644 index 0000000000..5fe7371e39 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-2-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js", + + description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property", + + test: function testcase() { + + var accessed = false; + + function callbackfn1(prevVal, curVal, idx, obj) { + accessed = true; + return obj.length === 2; + } + + var proto = {}; + Object.defineProperty(proto, "length", { + get: function () { + return 3; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + Object.defineProperty(child, "length", { + get: function () { + return 2; + }, + configurable: true + }); + child[0] = 12; + child[1] = 11; + child[2] = 9; + + return Array.prototype.reduceRight.call(child, callbackfn1, 111) && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js new file mode 100644 index 0000000000..1cb80a7374 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js", + + description: "Array.prototype.reduceRight - value of 'length' is undefined", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: undefined }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js new file mode 100644 index 0000000000..dd0842ab05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js", + + description: "Array.prototype.reduceRight - value of 'length' is a number (value is NaN)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: NaN }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js new file mode 100644 index 0000000000..8ac29198be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js", + + description: "Array.prototype.reduceRight - value of 'length' is a string containing a positive number", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "2" }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js new file mode 100644 index 0000000000..12a082d48f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js", + + description: "Array.prototype.reduceRight - value of 'length' is a string containing a negative number", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 0: 11, 1: 12, 2: 9, length: "-4294967294" }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js new file mode 100644 index 0000000000..158ca39b57 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js", + + description: "Array.prototype.reduceRight - value of 'length' is a string containing a decimal number", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "2.5" }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js new file mode 100644 index 0000000000..897b0b2fb4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-3-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js", + + description: "Array.prototype.reduceRight - value of 'length' is a string containing +/-Infinity", + + test: function testcase() { + + var accessed1 = false; + var accessed2 = false; + var accessed3 = false; + + function callbackfn1(prevVal, curVal, idx, obj) { + accessed1 = true; + } + + function callbackfn2(prevVal, curVal, idx, obj) { + accessed2 = true; + } + + function callbackfn3(prevVal, curVal, idx, obj) { + accessed3 = true; + } + + var obj1 = { 0: 9, length: "Infinity" }; + var obj2 = { 0: 9, length: "-Infinity" }; + var obj3 = { 0: 9, length: "+Infinity" }; + + return Array.prototype.reduceRight.call(obj1, callbackfn1, 1) === 1 && + Array.prototype.reduceRight.call(obj2, callbackfn2, 2) === 2 && + Array.prototype.reduceRight.call(obj3, callbackfn3, 3) === 3 && + !accessed1 && !accessed2 && !accessed3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js new file mode 100644 index 0000000000..c15aa7fbfe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js", + + description: "Array.prototype.reduceRight - value of 'length' is a string containing an exponential number", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "2E0" }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js new file mode 100644 index 0000000000..10be221b25 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js", + + description: "Array.prototype.reduceRight - value of 'length' is a string containing a hex number", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "0x0002" }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js new file mode 100644 index 0000000000..f085a76d54 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js", + + description: "Array.prototype.reduceRight - value of 'length' is a string containing a number with leading zeros", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: "0002.00" }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js new file mode 100644 index 0000000000..a0d0707890 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js", + + description: "Array.prototype.reduceRight - value of 'length' is a string that can't convert to a number", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, 1: 8, length: "two" }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 11) === 11 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js new file mode 100644 index 0000000000..597cd0ea33 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.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: "15.4.4.22-3-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js", + + description: "Array.prototype.reduceRight - value of 'length' is an object which has an own toString method", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var toStringAccessed = false; + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: { + toString: function () { + toStringAccessed = true; + return '2'; + } + } + }; + + // objects inherit the default valueOf() method from Object + // that simply returns itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2 && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js new file mode 100644 index 0000000000..cc90528cf3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js", + + description: "Array.prototype.reduceRight applied to an Array-like object, 'length' is 0 (length overridden to false(type conversion))", + + test: function testcase() { + + var accessed = false; + + function callbackfn(preVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: false }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js new file mode 100644 index 0000000000..78d6b5825e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.22-3-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js", + + description: "Array.prototype.reduceRight - value of 'length' is an Object which has an own valueOf method", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var valueOfAccessed = false; + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + } + }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2 && valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js new file mode 100644 index 0000000000..038ac1d1d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.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: "15.4.4.22-3-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js", + + description: "Array.prototype.reduceRight - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var toStringAccessed = false; + var valueOfAccessed = false; + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: { + valueOf: function () { + valueOfAccessed = true; + return {}; + }, + toString: function () { + toStringAccessed = true; + return '2'; + } + } + }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2 && valueOfAccessed && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js new file mode 100644 index 0000000000..6b43a27ef8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-3-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js", + + description: "Array.prototype.reduceRight throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values", + + test: function testcase() { + + var accessed = false; + var toStringAccessed = false; + var valueOfAccessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { + 0: 11, + 1: 12, + + length: { + valueOf: function () { + valueOfAccessed = true; + return {}; + }, + toString: function () { + toStringAccessed = true; + return {}; + } + } + }; + + try { + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return false; + } catch (ex) { + return (ex instanceof TypeError) && toStringAccessed && valueOfAccessed && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js new file mode 100644 index 0000000000..03792b0c1f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js @@ -0,0 +1,79 @@ +/// 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: "15.4.4.22-3-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js", + + description: "Array.prototype.reduceRight uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + var valueOfAccessed = false; + var toStringAccessed = false; + + var proto = { + valueOf: function () { + valueOfAccessed = true; + return 2; + } + }; + var Con = function () { }; + Con.prototype = proto; + var child = new Con(); + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + child.toString = function () { + toStringAccessed = true; + return '1'; + }; + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: child + }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2 && valueOfAccessed && !toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js new file mode 100644 index 0000000000..da151e63d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js", + + description: "Array.prototype.reduceRight - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 0: 12, 1: 11, 2: 9, length: 2.685 }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js new file mode 100644 index 0000000000..8a33d79041 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-3-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js", + + description: "Array.prototype.reduceRight - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { + 0: 12, + 1: 11, + 2: 9, + length: -4294967294.5 + }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js new file mode 100644 index 0000000000..aaad1bf9a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-3-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js", + + description: "Array.prototype.reduceRight - value of 'length' is boundary value (2^32)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { + 0: 12, + length: 4294967296 + }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js new file mode 100644 index 0000000000..2ea16b1125 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.22-3-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js", + + description: "Array.prototype.reduceRight - value of 'length' is boundary value (2^32 + 1)", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 0) { + testResult1 = false; + } + + if (idx === 0) { + testResult2 = true; + } + return false; + } + + var obj = { + 0: 11, + 1: 9, + length: 4294967297 + }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js new file mode 100644 index 0000000000..9345af1073 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js", + + description: "Array.prototype.reduceRight - value of 'length' is a number (value is 0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: 0 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js new file mode 100644 index 0000000000..5c90ae5b34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js", + + description: "Array.prototype.reduceRight - value of 'length' is a number (value is +0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: +0 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js new file mode 100644 index 0000000000..f20b13fb11 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js", + + description: "Array.prototype.reduceRight - value of 'length' is a number (value is -0)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(preVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: -0 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js new file mode 100644 index 0000000000..d86c7572ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js", + + description: "Array.prototype.reduceRight - value of 'length' is a number (value is positive)", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 1: 11, 2: 9, length: 2 }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js new file mode 100644 index 0000000000..a83c3292ec --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-3-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js", + + description: "Array.prototype.reduceRight - value of 'length' is a number (value is negative)", + + test: function testcase() { + + var testResult1 = true; + var testResult2 = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx > 1) { + testResult1 = false; + } + + if (idx === 1) { + testResult2 = true; + } + return false; + } + + var obj = { 1: 11, 2: 9, length: -4294967294 }; + + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return testResult1 && testResult2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js new file mode 100644 index 0000000000..e7248d3099 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js", + + description: "Array.prototype.reduceRight - value of 'length' is a number (value is Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: Infinity }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js new file mode 100644 index 0000000000..01e783f90c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-3-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js", + + description: "Array.prototype.reduceRight - value of 'length' is a number (value is -Infinity)", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + } + + var obj = { 0: 9, length: -Infinity }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js new file mode 100644 index 0000000000..64edbf1a11 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.22-4-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js", + +description: "Array.prototype.reduceRight throws TypeError if callbackfn is undefined", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduceRight(); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js new file mode 100644 index 0000000000..856928a340 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-4-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js", + + description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js new file mode 100644 index 0000000000..b59ad1a930 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.22-4-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js", + + description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, undefined); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js new file mode 100644 index 0000000000..36516a69bc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-4-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js", + + description: "Array.prototype.reduceRight - 'callbackfn' is a function", + + test: function testcase() { + + var initialValue = 0; + function callbackfn(accum, val, idx, obj) { + accum += val; + return accum; + } + + return 20 === [11, 9].reduceRight(callbackfn, initialValue); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js new file mode 100644 index 0000000000..425840a4e2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-4-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js", + + description: "Array.prototype.reduceRight - calling with no callbackfn is the same as passing undefined for callbackfn", + + test: function testcase() { + var obj = { 10: 10 }; + var lengthAccessed = false; + var loopAccessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + lengthAccessed = true; + return 20; + }, + configurable: true + }); + Object.defineProperty(obj, "0", { + get: function () { + loopAccessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, undefined); + return false; + } catch (ex) { + return (ex instanceof TypeError) && lengthAccessed && !loopAccessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js new file mode 100644 index 0000000000..4136a32fd3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.22-4-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js", + +description: "Array.prototype.reduceRight throws ReferenceError if callbackfn is unreferenced", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduceRight(foo); + } + catch(e) { + if(e instanceof ReferenceError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js new file mode 100644 index 0000000000..62e55e603d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.22-4-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js", + +description: "Array.prototype.reduceRight throws TypeError if callbackfn is null", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduceRight(null); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js new file mode 100644 index 0000000000..4a150212cd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.22-4-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js", + +description: "Array.prototype.reduceRight throws TypeError if callbackfn is boolean", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduceRight(true); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js new file mode 100644 index 0000000000..42ad132ae9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.22-4-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js", + +description: "Array.prototype.reduceRight throws TypeError if callbackfn is number", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduceRight(5); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js new file mode 100644 index 0000000000..a088cd1350 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.22-4-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js", + +description: "Array.prototype.reduceRight throws TypeError if callbackfn is string", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduceRight("abc"); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js new file mode 100644 index 0000000000..c6726bb0c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js @@ -0,0 +1,45 @@ +/// 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: "15.4.4.22-4-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js", + +description: "Array.prototype.reduceRight throws TypeError if callbackfn is Object without [[Call]] internal method", + +test: function testcase() { + + var arr = new Array(10); + try { + arr.reduceRight(new Object()); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js new file mode 100644 index 0000000000..c1f2399813 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-4-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js", + + description: "Array.prototype.reduceRight - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js new file mode 100644 index 0000000000..68a8a09937 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-4-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js", + + description: "Array.prototype.reduceRight - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, null); + return false; + } catch (ex) { + return ex instanceof TypeError && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js new file mode 100644 index 0000000000..069b808844 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-5-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js", + +description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (empty array), no initVal", + +test: function testcase() { + function cb(){} + + try { + [].reduceRight(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js new file mode 100644 index 0000000000..122d199a6d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-5-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js", + + description: "Array.prototype.reduceRight - side-effects produced by step 2 when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 0; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js new file mode 100644 index 0000000000..24d265719c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-5-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js", + + description: "Array.prototype.reduceRight - side-effects produced by step 3 when an exception occurs", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "0"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js new file mode 100644 index 0000000000..500c8446b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-5-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js", + + description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js new file mode 100644 index 0000000000..4da861dd4e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.22-5-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js", + + description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = { 0: 11, 1: 12 }; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js new file mode 100644 index 0000000000..7d4257eaf0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-5-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js", + +description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to null (type conversion)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = null; + + function cb(){} + try { + f.reduceRight(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js new file mode 100644 index 0000000000..24d103f041 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-5-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js", + +description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to false (type conversion)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = false; + + function cb(){} + try { + f.reduceRight(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js new file mode 100644 index 0000000000..11558deb5c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-5-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js", + +description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + function cb(){} + try { + f.reduceRight(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js new file mode 100644 index 0000000000..8ecbaa6743 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-5-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js", + +description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = '0'; + + function cb(){} + try { + f.reduceRight(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js new file mode 100644 index 0000000000..20475e5007 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-5-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js", + +description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj with valueOf), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { valueOf: function () { return 0;}}; + f.length = o; + + function cb(){} + try { + f.reduceRight(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js new file mode 100644 index 0000000000..e77281c482 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.22-5-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js", + +description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString)), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + function cb(){} + try { + f.reduceRight(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js new file mode 100644 index 0000000000..34bceb51e5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.22-5-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js", + +description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with []), no initVal", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + try { + f.reduceRight(cb); + } + catch (e) { + if (e instanceof TypeError) { + return true; + } + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js new file mode 100644 index 0000000000..115d809336 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.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: "15.4.4.22-5-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js", + + description: "Array.prototype.reduceRight - 'initialValue' is returned if 'len' is 0 and 'initialValue' is present", + + test: function testcase() { + + var initialValue = 10; + return initialValue === [].reduceRight(function () { }, initialValue); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js new file mode 100644 index 0000000000..4801653a49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.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: "15.4.4.22-7-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (empty array)", + +test: function testcase() { + function cb(){} + + try { + if([].reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js new file mode 100644 index 0000000000..e9f26b78b6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.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: "15.4.4.22-7-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js", + + description: "Array.prototype.reduceRight - 'initialValue' is present", + + test: function testcase() { + + var str = "initialValue is present"; + return str === [].reduceRight(function () { }, str); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js new file mode 100644 index 0000000000..6c08f1eb59 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.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: "15.4.4.22-7-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js", + + description: "Array.prototype.reduceRight - 'initialValue' is not present", + + test: function testcase() { + + var str = "initialValue is not present"; + return str === [str].reduceRight(function () { }); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js new file mode 100644 index 0000000000..ad8d9d9498 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-7-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to null (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = null; + + function cb(){} + try { + if(f.reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js new file mode 100644 index 0000000000..8852bb41bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-7-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to false (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = false; + + function cb(){} + try { + if(f.reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js new file mode 100644 index 0000000000..b516179305 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-7-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to 0 (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = 0; + + function cb(){} + try { + if(f.reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js new file mode 100644 index 0000000000..3eb4e7ff21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-7-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to '0' (type conversion))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + f.length = '0'; + + function cb(){} + try { + if(f.reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js new file mode 100644 index 0000000000..2871673901 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-7-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj with valueOf)", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { valueOf: function () { return 0;}}; + f.length = o; + + function cb(){} + try { + if(f.reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js new file mode 100644 index 0000000000..7c52dbe009 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-7-7", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj w/o valueOf (toString))", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + var o = { toString: function () { return '0';}}; + f.length = o; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + + function cb(){} + try { + if(f.reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js new file mode 100644 index 0000000000..85fe44bd9d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-7-8", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [])", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = []; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + try { + if(f.reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js new file mode 100644 index 0000000000..bef70e8084 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-7-9", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js", + +description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [0])", + +test: function testcase() { + foo.prototype = new Array(1, 2, 3); + function foo() {} + var f = new foo(); + + f.length = [0]; + + // objects inherit the default valueOf method of the Object object; + // that simply returns the itself. Since the default valueOf() method + // does not return a primitive value, ES next tries to convert the object + // to a number by calling its toString() method and converting the + // resulting string to a number. + // + // The toString( ) method on Array converts the array elements to strings, + // then returns the result of concatenating these strings, with commas in + // between. An array with no elements converts to the empty string, which + // converts to the number 0. If an array has a single element that is a + // number n, the array converts to a string representation of n, which is + // then converted back to n itself. If an array contains more than one element, + // or if its one element is not a number, the array converts to NaN. + + function cb(){} + try { + if(f.reduceRight(cb,1) === 1) + return true; + } + catch (e) { } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js new file mode 100644 index 0000000000..15535e2c60 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-8-b-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js", + + description: "Array.prototype.reduceRight - no observable effects occur if 'len' is 0", + + test: function testcase() { + + var accessed = false; + + var obj = { length: 0 }; + + Object.defineProperty(obj, "0", { + get: function () { + accessed = true; + return 10; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js new file mode 100644 index 0000000000..fdd1772a91 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-8-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js", + + description: "Array.prototype.reduceRight - modifications to length don't change number of iterations in step 9", + + test: function testcase() { + var called = 0; + function callbackfn(prevVal, curVal, idx, obj) { + called++; + return prevVal + curVal; + } + + var arr = [0, 1, 2, 3]; + Object.defineProperty(arr, "4", { + get: function () { + arr.length = 2; + return 10; + }, + configurable: true + }); + + var preVal = arr.reduceRight(callbackfn); + + return preVal === 11 && called === 2; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js new file mode 100644 index 0000000000..809e5d1a7a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js @@ -0,0 +1,72 @@ +/// 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: "15.4.4.22-8-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js", + + description: "Array.prototype.reduceRight - while loop is breaken once 'kPresent' is true", + + test: function testcase() { + + var called = 0; + var testResult = false; + var firstCalled = 0; + var secondCalled = 0; + + function callbackfn(prevVal, val, idx, obj) { + if (called === 0) { + testResult = (idx === 1); + } + called++; + } + + var arr = [, , , ]; + + Object.defineProperty(arr, "1", { + get: function () { + firstCalled++; + return 9; + }, + configurable: true + }); + + Object.defineProperty(arr, "2", { + get: function () { + secondCalled++; + return 11; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + + return testResult && firstCalled === 1 && secondCalled === 1; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js new file mode 100644 index 0000000000..04c5cbe950 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-8-b-ii-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js", + + description: "Array.prototype.reduceRight - added properties in step 2 are visible here", + + test: function testcase() { + + var obj = {}; + + function callbackfn(prevVal, curVal, idx, obj) { } + + Object.defineProperty(obj, "length", { + get: function () { + obj[2] = "accumulator"; + return 3; + }, + configurable: true + }); + + return Array.prototype.reduceRight.call(obj, callbackfn) === "accumulator"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js new file mode 100644 index 0000000000..ab2972425d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js @@ -0,0 +1,50 @@ +/// Copyright (c) 2009 Microsoft Corporation +/// 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: "15.4.4.22-8-b-ii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js", + + description: "Array.prototype.reduceRight - deleted properties in step 2 are visible here", + + test: function testcase() { + + var obj = { 2: "accumulator", 3: "another" }; + + Object.defineProperty(obj, "length", { + get: function () { + delete obj[2]; + return 5; + }, + configurable: true + }); + + return "accumulator" !== Array.prototype.reduceRight.call(obj, function () { }); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js new file mode 100644 index 0000000000..c84ec7b6c4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-8-b-iii-1-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 0) { + testResult = (prevVal === 1); + } + } + + var obj = { 0: 0, 1: 1, length: 2 }; + + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js new file mode 100644 index 0000000000..44b6149e50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-8-b-iii-1-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2) { + testResult = (curVal === 2); + } + } + + var arr = [0, 1, , 3]; + + Object.defineProperty(arr, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js new file mode 100644 index 0000000000..e914490ca6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-8-b-iii-1-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "20"); + } + } + + var proto = { 0: 0, 1: 1, 2: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "2", { + get: function () { + return "20"; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js new file mode 100644 index 0000000000..93613cefbd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-8-b-iii-1-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js", + + description: " Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "20"); + } + } + + try { + Array.prototype[2] = 2; + var arr = [0, 1]; + + Object.defineProperty(arr, "2", { + get: function () { + return "20"; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + return testResult; + + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js new file mode 100644 index 0000000000..fd5f6c51ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-8-b-iii-1-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "20"); + } + } + + var proto = { 0: 0, 1: 1 }; + + Object.defineProperty(proto, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "2", { + get: function () { + return "20"; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js new file mode 100644 index 0000000000..97367fcf13 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-8-b-iii-1-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js", + + description: " Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "20"); + } + } + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + var arr = [0, 1, , ]; + + Object.defineProperty(arr, "2", { + get: function () { + return "20"; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + return testResult; + + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js new file mode 100644 index 0000000000..c8d443c4a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-8-b-iii-1-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + var proto = { 0: 0, 1: 1 }; + + Object.defineProperty(proto, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduceRight.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js new file mode 100644 index 0000000000..04bc455c1c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-8-b-iii-1-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + var arr = [0, 1, , ]; + + arr.reduceRight(callbackfn); + return testResult; + + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js new file mode 100644 index 0000000000..8457e2f1f6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.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: "15.4.4.22-8-b-iii-1-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof prevVal === "undefined"); + } + } + + var obj = { 0: 0, 1: 1, length: 3 }; + + Object.defineProperty(obj, "2", { + set: function () { }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js new file mode 100644 index 0000000000..4fa0f986be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-8-b-iii-1-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof prevVal === "undefined"); + } + } + + var arr = [0, 1]; + + Object.defineProperty(arr, "2", { + set: function () { }, + configurable: true + }); + + arr.reduceRight(callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js new file mode 100644 index 0000000000..05924fa010 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-8-b-iii-1-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof prevVal === "undefined"); + } + } + + try { + Object.prototype[2] = 2; + + var obj = { 0: 0, 1: 1, length: 3 }; + Object.defineProperty(obj, "2", { + set: function () { }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + } finally { + delete Object.prototype[2]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js new file mode 100644 index 0000000000..04bce42919 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-8-b-iii-1-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + var arr = [0, 1, 2]; + + arr.reduceRight(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js new file mode 100644 index 0000000000..200628e7f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.22-8-b-iii-1-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof prevVal === "undefined"); + } + } + + try { + Array.prototype[2] = 2; + var arr = [0, 1]; + Object.defineProperty(arr, "2", { + set: function () { }, + configurable: true + }); + + arr.reduceRight(callbackfn); + return testResult; + + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js new file mode 100644 index 0000000000..90df4f18fb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-8-b-iii-1-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof prevVal === "undefined"); + } + } + + var proto = { 0: 0, 1: 1 }; + + Object.defineProperty(proto, "2", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduceRight.call(child, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js new file mode 100644 index 0000000000..2c8012d0b1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-8-b-iii-1-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof prevVal === "undefined"); + } + } + + try { + Object.defineProperty(Array.prototype, "2", { + set: function () { }, + configurable: true + }); + + var arr = [0, 1, , ]; + + arr.reduceRight(callbackfn); + return testResult; + + } finally { + delete Array.prototype[2]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js new file mode 100644 index 0000000000..ddeeab5962 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.22-8-b-iii-1-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js", + + description: "Array.prototype.reduceRight - This object is the global object which contains index property", + + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 0; + fnGlobalObject()[1] = 1; + fnGlobalObject()[2] = 2; + fnGlobalObject().length = 3; + + Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn); + return testResult; + + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js new file mode 100644 index 0000000000..594f0c8e35 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-8-b-iii-1-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js", + + description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 0) { + testResult = (prevVal === 1); + } + } + + var func = function (a, b, c) { + Array.prototype.reduceRight.call(arguments, callbackfn); + }; + + func(0, 1); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js new file mode 100644 index 0000000000..a4fb16351a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-8-b-iii-1-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js", + + description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + var func = function (a, b, c) { + Array.prototype.reduceRight.call(arguments, callbackfn); + }; + + func(0, 1, 2); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js new file mode 100644 index 0000000000..1d857d5e32 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-8-b-iii-1-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js", + + description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2) { + testResult = (prevVal === 3); + } + } + + var func = function (a, b, c) { + Array.prototype.reduceRight.call(arguments, callbackfn); + }; + + func(0, 1, 2, 3); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js new file mode 100644 index 0000000000..434853d16d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-8-b-iii-1-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js", + + description: "Array.prototype.reduceRight applied to String object, which implements its own property get method", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "2"); + } + } + + var str = new String("012"); + + Array.prototype.reduceRight.call(str, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js new file mode 100644 index 0000000000..ddae9101de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-8-b-iii-1-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js", + + description: "Array.prototype.reduceRight applied to Function object which implements its own property get method", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + var obj = function (a, b, c) { + return a + b + c; + }; + + obj[0] = 0; + obj[1] = 1; + obj[2] = 2; + + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js new file mode 100644 index 0000000000..281c1c230f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-8-b-iii-1-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "20"); + } + } + + var proto = { 0: 0, 1: 1, 2: 2, length: 2 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[1] = "10"; + child[2] = "20"; + child.length = 3; + + Array.prototype.reduceRight.call(child, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js new file mode 100644 index 0000000000..9755debfc1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-8-b-iii-1-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js", + + description: "Array.prototype.reduceRight - element changed by getter on current iteration is observed in subsequent iterations on an Array", + + test: function testcase() { + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1 && prevVal === 2); + } + } + + var arr = [0]; + var preIterVisible = false; + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return 1; + } else { + return "20"; + } + }, + configurable: true + }); + + Object.defineProperty(arr, "2", { + get: function () { + preIterVisible = true; + return 2; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js new file mode 100644 index 0000000000..cf4c82bdfa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-8-b-iii-1-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js", + + description: "Array.prototype.reduceRight - element changed by getter on current iteration is observed subsequetly on an Array-like object", + + test: function testcase() { + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2 && curVal === 1); + } + } + + var obj = { 0: 0, length: 3 }; + var preIterVisible = false; + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return 1; + } else { + return "20"; + } + }, + configurable: true + }); + + Object.defineProperty(obj, "2", { + get: function () { + preIterVisible = true; + return 2; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js new file mode 100644 index 0000000000..f93ebd2cc0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.22-8-b-iii-1-32", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js", + + description: "Array.prototype.reduceRight - Exception in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx <= 1) { + accessed = true; + } + } + + var obj = { 0: 0, 1: 1, length: 3 }; + Object.defineProperty(obj, "2", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js new file mode 100644 index 0000000000..5926e41b21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-8-b-iii-1-33", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js", + + description: "Array.prototype.reduceRight - Exception in getter terminate iteration on an Array", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx <= 1) { + accessed = true; + } + } + + var arr = [0, 1]; + + Object.defineProperty(arr, "2", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + arr.reduceRight(callbackfn); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js new file mode 100644 index 0000000000..319108324e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-8-b-iii-1-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + try { + Array.prototype[2] = "11"; + [0, 1, 2].reduceRight(callbackfn); + return testResult; + + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js new file mode 100644 index 0000000000..45e9e60a35 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-8-b-iii-1-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === "20"); + } + } + + var proto = {}; + + Object.defineProperty(proto, "2", { + get: function () { + return 11; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + child[0] = "0"; + child[1] = "1"; + Object.defineProperty(proto, "2", { + value: "20", + configurable: true + }); + + Array.prototype.reduceRight.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js new file mode 100644 index 0000000000..3b39689121 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.22-8-b-iii-1-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "2"; + }, + configurable: true + }); + [0, 1, 2].reduceRight(callbackfn); + return testResult; + + } finally { + delete Array.prototype[2]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js new file mode 100644 index 0000000000..c5ba174f52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-8-b-iii-1-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + var proto = { 0: 0, 1: 1, 2: 2, length: 3 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + + Array.prototype.reduceRight.call(child, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js new file mode 100644 index 0000000000..17b1092ff3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.22-8-b-iii-1-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + try { + Array.prototype[0] = 0; + Array.prototype[1] = 1; + Array.prototype[2] = 2; + [, , ,].reduceRight(callbackfn); + return testResult; + + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js new file mode 100644 index 0000000000..1603e3c7c0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-8-b-iii-1-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 2); + } + } + + var obj = { 0: 0, 1: 1, length: 3 }; + Object.defineProperty(obj, "2", { + get: function () { + return 2; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js new file mode 100644 index 0000000000..0585a4853b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-8-c-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js", + +description: "Array.prototype.reduceRight throws TypeError when Array is empty and initialValue is not present", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + } + + var arr = new Array(10); + try { + arr.reduceRight(callbackfn); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js new file mode 100644 index 0000000000..51865416dd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-8-c-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js", + +description: "Array.prototype.reduceRight throws TypeError when elements assigned values are deleted by reducign array length and initialValue is not present", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + } + + var arr = new Array(10); + arr[9] = 1; + arr.length = 5; + try { + arr.reduceRight(callbackfn); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js new file mode 100644 index 0000000000..c51f1eac70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.22-8-c-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js", + +description: "Array.prototype.reduceRight throws TypeError when elements assigned values are deleted and initialValue is not present", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + } + + var arr = [1,2,3,4,5]; + delete arr[0]; + delete arr[1]; + delete arr[2]; + delete arr[3]; + delete arr[4]; + try { + arr.reduceRight(callbackfn); + } + catch(e) { + if(e instanceof TypeError) + return true; + } + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js new file mode 100644 index 0000000000..cc561e4f7f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-8-c-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js", + + description: "Array.prototype.reduceRight doesn't throw error when array has no own properties but prototype contains a single property", + + test: function testcase() { + + var arr = [, , , ]; + + try { + Array.prototype[1] = "prototype"; + arr.reduceRight(function () { }); + return true; + } catch (ex) { + return false; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js new file mode 100644 index 0000000000..a50898e86e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-8-c-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js", + + description: "Array.prototype.reduceRight - side effects produced by step 2 are visible when an exception occurs", + + test: function testcase() { + + var obj = { }; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + accessed = true; + return 2; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js new file mode 100644 index 0000000000..eb2d67bf8c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js @@ -0,0 +1,61 @@ +/// Copyright (c) 2009 Microsoft Corporation +/// 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: "15.4.4.22-8-c-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js", + + description: "Array.prototype.reduceRight - side effects produced by step 3 are visible when an exception occurs", + + test: function testcase() { + + var obj = {}; + + var accessed = false; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + accessed = true; + return "2"; + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return (ex instanceof TypeError) && accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js new file mode 100644 index 0000000000..2fcf8e7645 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.22-8-c-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js", + + description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + throw new SyntaxError(); + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js new file mode 100644 index 0000000000..fe239894c3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js @@ -0,0 +1,58 @@ +/// Copyright (c) 2009 Microsoft Corporation +/// 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: "15.4.4.22-8-c-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js", + + description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3", + + test: function testcase() { + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + return { + toString: function () { + throw new SyntaxError(); + } + }; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, function () { }); + return false; + } catch (ex) { + return !(ex instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js new file mode 100644 index 0000000000..34791368e1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.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: "15.4.4.22-9-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js", + + description: "Array.prototype.reduceRight doesn't consider new elements which index is larger than array original length added to array after it is called, consider new elements which index is smaller than array length", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + arr[5] = 6; + arr[2] = 3; + return prevVal + curVal; + } + + var arr = ['1', 2, , 4, '5']; + return arr.reduceRight(callbackfn) === "54321"; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js new file mode 100644 index 0000000000..4d51be20f5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-9-2", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js", + +description: "Array.prototype.reduceRight considers new value of elements in array after it is called", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + arr[3] = -2; + arr[0] = -1; + return prevVal + curVal; + } + + var arr = [1,2,3,4,5]; + if(arr.reduceRight(callbackfn) === 13) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js new file mode 100644 index 0000000000..e9c5b66b16 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-9-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js", + +description: "Array.prototype.reduceRight doesn't consider unvisited deleted elements in array after the call", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + delete arr[1]; + delete arr[4]; + return prevVal + curVal; + } + + var arr = ['1',2,3,4,5]; + if(arr.reduceRight(callbackfn) === "121" ) // two elements deleted + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js new file mode 100644 index 0000000000..27f0687e62 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-9-4", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js", + +description: "Array.prototype.reduceRight doesn't consider unvisited deleted elements when Array.length is decreased", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + arr.length = 2; + return prevVal + curVal; + } + + var arr = [1,2,3,4,5]; + if(arr.reduceRight(callbackfn) === 12 ) + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js new file mode 100644 index 0000000000..b3991a7e08 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js @@ -0,0 +1,46 @@ +/// 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: "15.4.4.22-9-5", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js", + +description: "Array.prototype.reduceRight - callbackfn not called for array with one element", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(prevVal, curVal, idx, obj) + { + callCnt++; + return 2; + } + + var arr = [1]; + if(arr.reduceRight(callbackfn) === 1 && callCnt === 0 ) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js new file mode 100644 index 0000000000..728e1b6091 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-9-6", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js", + +description: "Array.prototype.reduceRight visits deleted element in array after the call when same index is also present in prototype", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + delete arr[1]; + delete arr[2]; + return prevVal + curVal; + } + Array.prototype[2] = 6; + var arr = ['1',2,3,4,5]; + var res = arr.reduceRight(callbackfn); + delete Array.prototype[2]; + + if(res === "151" ) //one element deleted + return true; + + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js new file mode 100644 index 0000000000..855aee738f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.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: "15.4.4.22-9-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js", + + description: "Array.prototype.reduceRight not affect call when the array is deleted during the call", + + test: function testcase() { + function callbackfn(prevVal, curVal, idx, obj) { + delete o.arr; + return prevVal + curVal; + } + + var o = new Object(); + o.arr = ['1', 2, 3, 4, 5]; + return o.arr.reduceRight(callbackfn) === "141" && !o.hasOwnProperty("arr"); + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js new file mode 100644 index 0000000000..e64b379ba8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-9-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js", + + description: "Array.prototype.reduceRight - no observable effects occur if 'len' is 0", + + test: function testcase() { + + var accessed = false; + function callbackfn() { + accessed = true; + } + + var obj = { length: 0 }; + + Object.defineProperty(obj, "5", { + get: function () { + accessed = true; + return 10; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, function () { }, "initialValue"); + return !accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js new file mode 100644 index 0000000000..7234b36564 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-9-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js", + + description: "Array.prototype.reduceRight - modifications to length will change number of iterations", + + test: function testcase() { + var called = 0; + function callbackfn(preVal, val, idx, obj) { + called++; + } + + var arr = [0, 1, 2, 3]; + Object.defineProperty(arr, "4", { + get: function () { + arr.length = 2; + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + + return called === 3; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js new file mode 100644 index 0000000000..e44f41c7f1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.22-9-b-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js", + +description: "Array.prototype.reduceRight returns initialvalue when Array is empty and initialValue is not present", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + } + + var arr = new Array(10); + + if(arr.reduceRight(callbackfn,5) === 5) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js new file mode 100644 index 0000000000..ef399a0bf4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.22-9-b-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js", + + description: "Array.prototype.reduceRight - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array-like Object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(preVal, val, idx, obj) { + accessed = true; + if (idx === 3) { + testResult = false; + } + } + + var obj = { 2: 2, length: 20 }; + + Object.defineProperty(obj, "5", { + get: function () { + delete Object.prototype[3]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[3] = 1; + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult && accessed; + } finally { + delete Object.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js new file mode 100644 index 0000000000..e3f59c91d7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.22-9-b-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js", + + description: "Array.prototype.reduceRight - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [0, , , ]; + Object.defineProperty(arr, "3", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.reduceRight(callbackfn); + return testResult && accessed; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js new file mode 100644 index 0000000000..435c0f2b2b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-b-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js", + + description: "Array.prototype.reduceRight - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1 && curVal === 1) { + testResult = true; + } + } + + var obj = { 0: 0, 1: 111, length: 10 }; + + Object.defineProperty(obj, "4", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js new file mode 100644 index 0000000000..b0306aec92 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.22-9-b-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js", + + description: "Array.prototype.reduceRight - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1 && curVal === 1) { + testResult = true; + } + } + var arr = [0, 111]; + + Object.defineProperty(arr, "2", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.reduceRight(callbackfn); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js new file mode 100644 index 0000000000..9e5af0c36e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-b-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js", + + description: "Array.prototype.reduceRight - decreasing length of array in step 8 causes deleted index property not to be visited", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (idx === 2) { + testResult = false; + } + } + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "3", { + get: function () { + arr.length = 2; + return 0; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js new file mode 100644 index 0000000000..06f01a26ce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-9-b-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js", + + description: "Array.prototype.reduceRight - decreasing length of array with prototype property in step 8 causes prototype index property to be visited", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2 && curVal === "prototype") { + testResult = true; + } + } + var arr = [0, 1, 2, 3]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "3", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + + return testResult; + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js new file mode 100644 index 0000000000..60350d0ac8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.22-9-b-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js", + + description: "Array.prototype.reduceRight - decreasing length of array in step 8 does not delete non-configurable properties", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2 && curVal === "unconfigurable") { + testResult = true; + } + } + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "3", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js new file mode 100644 index 0000000000..2a7720d29c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-b-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js", + + description: "Array.prototype.reduceRight - properties added into own object are visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 0 && curVal === 0) { + testResult = true; + } + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "1", { + get: function () { + Object.defineProperty(obj, "0", { + get: function () { + return 0; + }, + configurable: true + }); + return 1; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js new file mode 100644 index 0000000000..cb57a28dd9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-b-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js", + + description: "Array.prototype.reduceRight - properties added into own object are visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1 && curVal === 1) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "2", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js new file mode 100644 index 0000000000..a605e26925 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-9-b-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js", + + description: "Array.prototype.reduceRight - properties added to prototype are visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1 && curVal === 6.99) { + testResult = true; + } + } + + var obj = { length: 6 }; + + Object.defineProperty(obj, "2", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js new file mode 100644 index 0000000000..ddafa10b4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js @@ -0,0 +1,59 @@ +/// 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: "15.4.4.22-9-b-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js", + + description: "Array.prototype.reduceRight - added properties in step 2 are visible here", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2 && curVal === "2") { + testResult = true; + } + } + + var obj = {}; + + Object.defineProperty(obj, "length", { + get: function () { + obj[2] = "2"; + return 3; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js new file mode 100644 index 0000000000..66d72597d1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-9-b-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js", + + description: "Array.prototype.reduceRight - properties added to prototype can be visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1 && curVal === 6.99) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "2", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js new file mode 100644 index 0000000000..eb94dce12c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-9-b-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js", + + description: "Array.prototype.reduceRight - deleting own property causes deleted index property not to be visited on an Array-like object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var obj = { 0: 10, length: 10 }; + + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(obj, "5", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js new file mode 100644 index 0000000000..c22a39bba9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-9-b-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js", + + description: "Array.prototype.reduceRight - deleting own property causes deleted index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [1, 2, 4]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "2", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js new file mode 100644 index 0000000000..f192df3845 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js @@ -0,0 +1,65 @@ +/// 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: "15.4.4.22-9-b-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js", + + description: "Array.prototype.reduceRight - deleting property of prototype causes deleted index property not to be visited on an Array-like Object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (idx === 3) { + testResult = false; + } + } + + var obj = { 2: 2, length: 20 }; + + Object.defineProperty(obj, "5", { + get: function () { + delete Object.prototype[3]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[3] = 1; + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult && accessed; + } finally { + delete Object.prototype[3]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js new file mode 100644 index 0000000000..cd679e6905 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js @@ -0,0 +1,64 @@ +/// 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: "15.4.4.22-9-b-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js", + + description: "Array.prototype.reduceRight - deleting property of prototype causes deleted index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [0, , , ]; + Object.defineProperty(arr, "3", { + get: function () { + delete Array.prototype[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.reduceRight(callbackfn, "initialValue"); + return testResult && accessed; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js new file mode 100644 index 0000000000..8537b21774 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-b-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js", + + description: "Array.prototype.reduceRight - deleting own property with prototype property causes prototype index property to be visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1 && curVal === 1) { + testResult = true; + } + } + + var obj = { 0: 0, 1: 111, 4: 10, length: 10 }; + + Object.defineProperty(obj, "4", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + try { + Object.prototype[1] = 1; + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js new file mode 100644 index 0000000000..703b59f6be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.22-9-b-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js", + + description: "Array.prototype.reduceRight - deleting own property with prototype property causes prototype index property to be visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1 && curVal === 1) { + testResult = true; + } + } + var arr = [0, 111]; + + Object.defineProperty(arr, "2", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + try { + Array.prototype[1] = 1; + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js new file mode 100644 index 0000000000..18145909c7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-b-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js", + + description: "Array.prototype.reduceRight - decreasing length of array causes deleted index property not to be visited", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (idx === 2) { + testResult = false; + } + } + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "3", { + get: function () { + arr.length = 2; + return 0; + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js new file mode 100644 index 0000000000..ae076476f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-9-b-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js", + + description: "Array.prototype.reduceRight - decreasing length of array with prototype property causes prototype index property to be visited", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2 && curVal === "prototype") { + testResult = true; + } + } + var arr = [0, 1, 2, 3]; + + try { + Object.defineProperty(Array.prototype, "2", { + get: function () { + return "prototype"; + }, + configurable: true + }); + + Object.defineProperty(arr, "3", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + + return testResult; + } finally { + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js new file mode 100644 index 0000000000..dc40b5d256 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js @@ -0,0 +1,66 @@ +/// 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: "15.4.4.22-9-b-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js", + + description: "Array.prototype.reduceRight - decreasing length of array does not delete non-configurable properties", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2 && curVal === "unconfigurable") { + testResult = true; + } + } + + var arr = [0, 1, 2, 3]; + + Object.defineProperty(arr, "2", { + get: function () { + return "unconfigurable"; + }, + configurable: false + }); + + Object.defineProperty(arr, "3", { + get: function () { + arr.length = 2; + return 1; + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js new file mode 100644 index 0000000000..03fb3af447 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-b-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js", + + description: "Array.prototype.reduceRight - deleted properties in step 2 are visible here", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(preVal, curVal, idx, obj) { + accessed = true; + if (idx === 2) { + testResult = false; + } + } + + var obj = { 2: "2", 3: 10 }; + + Object.defineProperty(obj, "length", { + get: function () { + delete obj[2]; + return 5; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + + return accessed && testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js new file mode 100644 index 0000000000..4c1ca4aa34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-b-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js", + + description: "Array.prototype.reduceRight - properties added into own object in step 8 can be visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(preVal, curVal, idx, obj) { + if (idx === 0 && curVal === 0) { + testResult = true; + } + } + + var obj = { length: 2 }; + + Object.defineProperty(obj, "1", { + get: function () { + Object.defineProperty(obj, "0", { + get: function () { + return 0; + }, + configurable: true + }); + return 1; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js new file mode 100644 index 0000000000..c5c487ab17 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-b-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js", + + description: "Array.prototype.reduceRight - properties added into own object in step 8 can be visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(preVal, curVal, idx, obj) { + if (idx === 1 && curVal === 1) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "2", { + get: function () { + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js new file mode 100644 index 0000000000..a0e7a96c1a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-9-b-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js", + + description: "Array.prototype.reduceRight - properties added to prototype in step 8 visited on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(preVal, curVal, idx, obj) { + if (idx === 1 && curVal === 6.99) { + testResult = true; + } + } + + var obj = { length: 6 }; + + Object.defineProperty(obj, "2", { + get: function () { + Object.defineProperty(Object.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult; + } finally { + delete Object.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js new file mode 100644 index 0000000000..cf265c01db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-9-b-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js", + + description: "Array.prototype.reduceRight - properties added to prototype in step 8 visited on an Array", + + test: function testcase() { + + var testResult = false; + + function callbackfn(preVal, curVal, idx, obj) { + if (idx === 1 && curVal === 6.99) { + testResult = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "2", { + get: function () { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + return 0; + }, + configurable: true + }); + + try { + arr.reduceRight(callbackfn); + return testResult; + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js new file mode 100644 index 0000000000..3164824f14 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-9-b-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js", + + description: "Array.prototype.reduceRight - deleting own property in step 8 causes deleted index property not to be visited on an Array-like object", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(preVal, val, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var obj = { 0: 10, length: 10 }; + + Object.defineProperty(obj, "1", { + get: function () { + return 6.99; + }, + configurable: true + }); + + Object.defineProperty(obj, "5", { + get: function () { + delete obj[1]; + return 0; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js new file mode 100644 index 0000000000..6cbd6436bb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.22-9-b-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js", + + description: "Array.prototype.reduceRight - deleting own property in step 8 causes deleted index property not to be visited on an Array", + + test: function testcase() { + + var accessed = false; + var testResult = true; + + function callbackfn(preVal, curVal, idx, obj) { + accessed = true; + if (idx === 1) { + testResult = false; + } + } + + var arr = [0]; + + Object.defineProperty(arr, "1", { + get: function () { + return "6.99"; + }, + configurable: true + }); + + Object.defineProperty(arr, "2", { + get: function () { + delete arr[1]; + return 0; + }, + configurable: true + }); + + arr.reduceRight(callbackfn); + return testResult && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js new file mode 100644 index 0000000000..578334412d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-9-c-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js", + +description: "Array.prototype.reduceRight - callbackfn not called for indexes never been assigned values", + +test: function testcase() { + + var callCnt = 0; + function callbackfn(prevVal, curVal, idx, obj) + { + callCnt++; + return curVal; + } + + var arr = new Array(10); + arr[0] = arr[1] = undefined; //explicitly assigning a value + if( arr.reduceRight(callbackfn) === undefined && callCnt === 1) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js new file mode 100644 index 0000000000..cf0e513e22 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-9-c-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 0) { + testResult = (curVal === 0); + } + } + + var obj = { 0: 0, 1: 1, 2: 2, length: 2 }; + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js new file mode 100644 index 0000000000..9d29e8c749 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-9-c-i-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js new file mode 100644 index 0000000000..66c16cd354 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-c-i-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "1"); + } + } + + var proto = { 0: 0, 1: 11, 2: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "1", { + get: function () { + return "1"; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(child, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js new file mode 100644 index 0000000000..815038b310 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-c-i-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js", + + description: " Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "1"); + } + } + + try { + Array.prototype[1] = 11; + var arr = [0, ,2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "1"; + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js new file mode 100644 index 0000000000..18cf483f81 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js @@ -0,0 +1,69 @@ +/// 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: "15.4.4.22-9-c-i-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object", + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "1"); + } + } + + var proto = { 0: 0, 2: 2}; + + Object.defineProperty(proto, "1", { + get: function () { + return 11; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "1", { + get: function () { + return "1"; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(child, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js new file mode 100644 index 0000000000..9ccf4782ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.22-9-c-i-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js", + + description: " Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "1"); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 11; + }, + configurable: true + }); + + var arr = [0, ,2]; + + Object.defineProperty(arr, "1", { + get: function () { + return "1"; + }, + configurable: true + }); + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js new file mode 100644 index 0000000000..73a9df3275 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js @@ -0,0 +1,63 @@ +/// 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: "15.4.4.22-9-c-i-15", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var proto = { 0: 0, 2: 2 }; + + Object.defineProperty(proto, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduceRight.call(child, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js new file mode 100644 index 0000000000..c5253f0620 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-c-i-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + var arr = [0, , 2]; + + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js new file mode 100644 index 0000000000..b1a8fa5308 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.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: "15.4.4.22-9-c-i-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof curVal === "undefined"); + } + } + + var obj = { 0: 0, 2: 2, length: 3 }; + + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js new file mode 100644 index 0000000000..0d08e02237 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js @@ -0,0 +1,56 @@ +/// 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: "15.4.4.22-9-c-i-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof curVal === "undefined"); + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "1", { + set: function () { }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js new file mode 100644 index 0000000000..6e18a01cf9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-c-i-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof curVal === "undefined"); + } + } + + try { + Object.prototype[1] = 1; + + var obj = { 0: 0, 2: 2, length: 3 }; + Object.defineProperty(obj, "1", { + set: function () { }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult; + } finally { + delete Object.prototype[1]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js new file mode 100644 index 0000000000..87897aef30 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-i-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var arr = [0, 1, 2]; + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js new file mode 100644 index 0000000000..6441933fde --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.22-9-c-i-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof curVal === "undefined"); + } + } + + try { + Array.prototype[1] = 1; + var arr = [0, ,2]; + Object.defineProperty(arr, "1", { + set: function () { }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js new file mode 100644 index 0000000000..e50e9a1371 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js @@ -0,0 +1,62 @@ +/// 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: "15.4.4.22-9-c-i-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof curVal === "undefined"); + } + } + + var proto = { 0: 0, 2: 2 }; + + Object.defineProperty(proto, "1", { + set: function () { }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduceRight.call(child, callbackfn, "initialValue"); + return testResult; + + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js new file mode 100644 index 0000000000..6bd56c75ed --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-c-i-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (typeof curVal === "undefined"); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + set: function () { }, + configurable: true + }); + + var arr = [0, , 2]; + + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + + } finally { + delete Array.prototype[1]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js new file mode 100644 index 0000000000..8103da9f9e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-c-i-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js", + + description: "Array.prototype.reduceRight - This object is an global object which contains index property", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + var oldLen = fnGlobalObject().length; + fnGlobalObject()[0] = 0; + fnGlobalObject()[1] = 1; + fnGlobalObject()[2] = 2; + fnGlobalObject().length = 3; + + Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn, "initialValue"); + return testResult; + + } finally { + delete fnGlobalObject()[0]; + delete fnGlobalObject()[1]; + delete fnGlobalObject()[2]; + fnGlobalObject().length = oldLen; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js new file mode 100644 index 0000000000..cdaef47bcc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-9-c-i-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js", + + description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var func = function (a, b, c) { + Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue"); + }; + + func(0, 1); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js new file mode 100644 index 0000000000..6347a85fe4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-9-c-i-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js", + + description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2) { + testResult = (curVal === 2); + } + } + + var func = function (a, b, c) { + Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue"); + }; + + func(0, 1, 2); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js new file mode 100644 index 0000000000..df96875eee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js @@ -0,0 +1,52 @@ +/// 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: "15.4.4.22-9-c-i-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js", + + description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 3) { + testResult = (curVal === 3); + } + } + + var func = function (a, b, c) { + Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue"); + }; + + func(0, 1, 2, 3); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js new file mode 100644 index 0000000000..af98e84ca6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-9-c-i-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js", + + description: "Array.prototype.reduceRight applied to String object, which implements its own property get method", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "1"); + } + } + + var str = new String("012"); + Array.prototype.reduceRight.call(str, callbackfn, "initialValue"); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js new file mode 100644 index 0000000000..ebcda554e6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-9-c-i-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js", + + description: "Array.prototype.reduceRight applied to Function object which implements its own property get method", + + test: function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var obj = function (a, b, c) { + return a + b + c; + }; + obj[0] = 0; + obj[1] = 1; + obj[2] = 2; + obj[3] = 3; + + Array.prototype.reduceRight.call(obj, callbackfn, initialValue); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js new file mode 100644 index 0000000000..97d0849b78 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-9-c-i-3", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "1"); + } + } + + var proto = { 0: 10, 1: 11, 2: 12, length: 2 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child[1] = "1"; + child[2] = "2"; + child.length = 3; + + Array.prototype.reduceRight.call(child, callbackfn, "initialValue"); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js new file mode 100644 index 0000000000..fb33db1771 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js @@ -0,0 +1,70 @@ +/// 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: "15.4.4.22-9-c-i-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js", + + description: "Array.prototype.reduceRight - element changed by getter on previous iterations is observed on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var arr = [, ,]; + var preIterVisible = false; + + Object.defineProperty(arr, "2", { + get: function () { + preIterVisible = true; + return 0; + }, + configurable: true + }); + + Object.defineProperty(arr, "1", { + get: function () { + if (preIterVisible) { + return 1; + } else { + return "11"; + } + }, + configurable: true + }); + + arr.reduceRight(callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js new file mode 100644 index 0000000000..9eea0a6728 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js @@ -0,0 +1,71 @@ +/// 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: "15.4.4.22-9-c-i-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js", + + description: "Array.prototype.reduceRight - element changed by getter on previous iterations is observed on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var obj = { length: 3 }; + var preIterVisible = false; + + Object.defineProperty(obj, "2", { + get: function () { + preIterVisible = true; + return 0; + }, + configurable: true + }); + + Object.defineProperty(obj, "1", { + get: function () { + if (preIterVisible) { + return 1; + } else { + return "11"; + } + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js new file mode 100644 index 0000000000..c8add574b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-c-i-32", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js", + + description: "Array.prototype.reduceRight - unnhandled exceptions happened in getter terminate iteration on an Array-like object", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx <= 1) { + accessed = true; + } + } + + + var obj = { 0: 0, 2: 2, length: 3 }; + Object.defineProperty(obj, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return false; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js new file mode 100644 index 0000000000..62e92c239d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js @@ -0,0 +1,61 @@ +/// 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: "15.4.4.22-9-c-i-33", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js", + + description: "Array.prototype.reduceRight - unnhandled exceptions happened in getter terminate iteration on an Array", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx <= 1) { + accessed = true; + } + } + + var arr = [0, , 2]; + + Object.defineProperty(arr, "1", { + get: function () { + throw new RangeError("unhandle exception happened in getter"); + }, + configurable: true + }); + + try { + arr.reduceRight(callbackfn, "initialValue"); + return true; + } catch (ex) { + return (ex instanceof RangeError) && !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js new file mode 100644 index 0000000000..0cd8b45cfe --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-9-c-i-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + Array.prototype[1] = "11"; + [0, 1, 2].reduceRight(callbackfn, "initialValue"); + return testResult; + + } finally { + delete Array.prototype[1]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js new file mode 100644 index 0000000000..dcc4cc94a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.22-9-c-i-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 0) { + testResult = (curVal === "0"); + } + } + + var proto = {}; + + Object.defineProperty(proto, "0", { + get: function () { + return 10; + }, + configurable: true + }); + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 2; + Object.defineProperty(child, "0", { + value: "0", + configurable: true + }); + child[1] = "1"; + + Array.prototype.reduceRight.call(child, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js new file mode 100644 index 0000000000..3f09afa894 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.22-9-c-i-6", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + Object.defineProperty(Array.prototype, "1", { + get: function () { + return "11"; + }, + configurable: true + }); + [0, 1, 2].reduceRight(callbackfn, "initialValue"); + return testResult; + + } finally { + delete Array.prototype[1]; + } + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js new file mode 100644 index 0000000000..722b6fed6b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.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: "15.4.4.22-9-c-i-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var proto = { 0: 0, 1: 1, 2: 2 }; + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Array.prototype.reduceRight.call(child, callbackfn, "initialValue"); + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js new file mode 100644 index 0000000000..8456fd55da --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.22-9-c-i-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js", + + description: "Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + try { + Array.prototype[0] = 0; + Array.prototype[1] = 1; + Array.prototype[2] = 2; + [, , , ].reduceRight(callbackfn, "initialValue"); + return testResult; + + } finally { + delete Array.prototype[0]; + delete Array.prototype[1]; + delete Array.prototype[2]; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && ![, 1].hasOwnProperty(0); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js new file mode 100644 index 0000000000..e6a7d633ad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js @@ -0,0 +1,57 @@ +/// 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: "15.4.4.22-9-c-i-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js", + + description: "Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array-like object", + + test: function testcase() { + + var testResult = false; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === 1); + } + } + + var obj = { 0: 0, 2: 2, length: 3 }; + Object.defineProperty(obj, "1", { + get: function () { + return 1; + }, + configurable: true + }); + + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return testResult; + + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects(); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js new file mode 100644 index 0000000000..8b7021f9e3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-9-c-ii-1", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js", + +description: "Array.prototype.reduceRight - callbackfn called with correct parameters (initialvalue not passed)", + +test: function testcase() { + + function callbackfn(prevVal, curVal, idx, obj) + { + if(idx+1 < obj.length && obj[idx] === curVal && obj[idx+1] === prevVal) + return curVal; + else + return false; + } + + var arr = [0,1,true,null,new Object(),"five"]; + if( arr.reduceRight(callbackfn) === 0) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js new file mode 100644 index 0000000000..101fa3b80f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-9-c-ii-10", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js", + + description: "Array.prototype.reduceRight - callbackfn is called with 1 formal parameter", + + test: function testcase() { + + var called = 0; + + function callbackfn(prevVal) { + called++; + return prevVal; + } + + return [11, 12].reduceRight(callbackfn, 100) === 100 && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js new file mode 100644 index 0000000000..05ea6ffeb7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-9-c-ii-11", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js", + + description: "Array.prototype.reduceRight - callbackfn is called with 2 formal parameter", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal) { + if (prevVal === 100) { + testResult = true; + } + return curVal > 10; + } + + return [11].reduceRight(callbackfn, 100) === true && testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js new file mode 100644 index 0000000000..2823ed150f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-9-c-ii-12", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js", + + description: "Array.prototype.reduceRight - callbackfn is called with 3 formal parameter", + + test: function testcase() { + + var testResult = false; + var arr = [11, 12, 13]; + var initVal = 6.99; + + function callbackfn(prevVal, curVal, idx) { + if (idx === 2) { + testResult = (prevVal === initVal); + } + return curVal > 10 && arguments[3][idx] === curVal; + } + + return arr.reduceRight(callbackfn, initVal) === true && testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js new file mode 100644 index 0000000000..64b9ed3f68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-9-c-ii-13", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js", + + description: "Array.prototype.reduceRight - callbackfn is called with 4 formal parameter", + + test: function testcase() { + + var arr = [11, 12, 13]; + var initVal = 6.99; + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 2) { + testResult = (prevVal === initVal); + } + return curVal > 10 && obj[idx] === curVal; + } + + return arr.reduceRight(callbackfn, initVal) === true && testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js new file mode 100644 index 0000000000..0a5b23aa3f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js @@ -0,0 +1,44 @@ +/// 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: "15.4.4.22-9-c-ii-14", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js", + + description: "Array.prototype.reduceRight - callbackfn uses arguments", + + test: function testcase() { + + function callbackfn() { + return arguments[0] === 100 && arguments[3][arguments[2]] === arguments[1]; + } + + return [11].reduceRight(callbackfn, 100) === true; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js new file mode 100644 index 0000000000..3ffdfe4a50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-9-c-ii-16", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js", + + description: "Array.prototype.reduceRight - non-indexed properties are not called on an Array-like object", + + test: function testcase() { + + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (prevVal === 8 || curVal === 8) { + testResult = true; + } + } + + var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 }; + Array.prototype.reduceRight.call(obj, callbackfn, "initialValue"); + return !testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js new file mode 100644 index 0000000000..00db7aec34 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.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: "15.4.4.22-9-c-ii-17", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js", + + description: "Array.prototype.reduceRight - 'accumulator' used for current iteration is the result of previous iteration on an Array", + + test: function testcase() { + + var arr = [11, 12, 13]; + var testResult = true; + var initVal = 6.99; + var preResult = initVal; + + function callbackfn(prevVal, curVal, idx, obj) { + if (prevVal !== preResult) { + testResult = false; + } + preResult = curVal; + return curVal; + } + + arr.reduceRight(callbackfn, initVal); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js new file mode 100644 index 0000000000..1e15c6226e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js @@ -0,0 +1,53 @@ +/// 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: "15.4.4.22-9-c-ii-18", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js", + + description: "Array.prototype.reduceRight - 'accumulator' used for first iteration is the value of 'initialValue' when it is present on an Array", + + test: function testcase() { + + var arr = [11, 12]; + var testResult = false; + var initVal = 6.99; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === initVal); + } + return curVal; + } + + arr.reduceRight(callbackfn, initVal); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js new file mode 100644 index 0000000000..4950a0b133 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js @@ -0,0 +1,51 @@ +/// 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: "15.4.4.22-9-c-ii-19", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js", + + description: "Array.prototype.reduceRight - value of 'accumulator' used for first iteration is the value of max index property which is not undefined when 'initialValue' is not present on an Array", + + test: function testcase() { + + var arr = [11, 12, 13]; + var testResult = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (prevVal === 13); + } + return curVal; + } + arr.reduceRight(callbackfn); + + return testResult; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js new file mode 100644 index 0000000000..05550e3c7f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-2", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js", + + description: "Array.prototype.reduceRight - callbackfn called with correct parameters (initialvalue passed)", + + test: function testcase() { + var bParCorrect = false; + var arr = [0, 1, true, null, new Object(), "five"]; + var initialValue = 5.5; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === obj.length - 1 && obj[idx] === curVal && prevVal === initialValue) + return curVal; + else if (idx + 1 < obj.length && obj[idx] === curVal && obj[idx + 1] === prevVal) + return curVal; + else + return false; + } + return arr.reduceRight(callbackfn, initialValue) === 0; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js new file mode 100644 index 0000000000..301adf9335 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-20", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js", + + description: "Array.prototype.reduceRight - undefined can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return typeof prevVal === "undefined"; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, undefined) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js new file mode 100644 index 0000000000..a664a3f558 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-21", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js", + + description: "Array.prototype.reduceRight - null can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === null; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, null) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js new file mode 100644 index 0000000000..47c29cc907 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-22", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js", + + description: "Array.prototype.reduceRight - boolean primitive can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === false; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, false) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js new file mode 100644 index 0000000000..b2510d0246 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-23", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js", + + description: "Array.prototype.reduceRight - number primitive can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === 12; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, 12) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js new file mode 100644 index 0000000000..0a2cf036c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-24", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js", + + description: "Array.prototype.reduceRight - string primitive can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === "hello_"; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, "hello_") === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js new file mode 100644 index 0000000000..6f86edc784 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-9-c-ii-25", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js", + + description: "Array.prototype.reduceRight - Function Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var objFunction = function () { }; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objFunction; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, objFunction) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js new file mode 100644 index 0000000000..455865c8b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-9-c-ii-26", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js", + + description: "Array.prototype.reduceRight - Array Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var objArray = []; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objArray; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, objArray) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js new file mode 100644 index 0000000000..557f0ffce9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-9-c-ii-27", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js", + + description: "Array.prototype.reduceRight - String Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var objString = new String(); + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objString; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, objString) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js new file mode 100644 index 0000000000..47dbf11dab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-9-c-ii-28", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js", + + description: "Array.prototype.reduceRight - Boolean Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var objBoolean = new Boolean(); + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objBoolean; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, objBoolean) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js new file mode 100644 index 0000000000..758e9b492f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-9-c-ii-29", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js", + + description: "Array.prototype.reduceRight - Number Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var objNumber = new Number(); + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objNumber; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, objNumber) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js new file mode 100644 index 0000000000..201cfc0b4a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-3", + +path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js", + +description: "Array.prototype.reduceRight - callbackfn takes 4 arguments", + +test: function testcase() { + + var bCalled = false; + function callbackfn(prevVal, curVal, idx, obj) + { + bCalled = true; + if(prevVal === true && arguments.length === 4) + return true; + else + return false; + } + var arr = [0,1,2,3,4,5,6,7,8,9]; + if(arr.reduceRight(callbackfn,true) === true && bCalled === true) + return true; + }, + +precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js new file mode 100644 index 0000000000..da5104f4f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-30", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js", + + description: "Array.prototype.reduceRight - the Math Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === Math; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, Math) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js new file mode 100644 index 0000000000..5608b06f69 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-9-c-ii-31", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js", + + description: "Array.prototype.reduceRight - Date Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var objDate = new Date(); + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objDate; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, objDate) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js new file mode 100644 index 0000000000..3f9401e180 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js @@ -0,0 +1,49 @@ +/// 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: "15.4.4.22-9-c-ii-32", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js", + + description: "Array.prototype.reduceRight - RegExp Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var objRegExp = new RegExp(); + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objRegExp; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, objRegExp) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js new file mode 100644 index 0000000000..b752d7ef7b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-33", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js", + + description: "Array.prototype.reduceRight - the JSON can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === JSON; + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, JSON) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js new file mode 100644 index 0000000000..33c48f78b0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-9-c-ii-34", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js", + + description: "Array.prototype.reduceRight - Error Object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var objError = new RangeError(); + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === objError; + } + + var obj = { 0: 11, length: 1 }; + + + return Array.prototype.reduceRight.call(obj, callbackfn, objError) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js new file mode 100644 index 0000000000..1b699886df --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-9-c-ii-35", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js", + + description: "Array.prototype.reduceRight - the Arguments object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + var arg; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === arg; + } + + var obj = { 0: 11, length: 1 }; + + (function fun() { + arg = arguments; + }(10, 11, 12, 13)); + + return Array.prototype.reduceRight.call(obj, callbackfn, arg) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js new file mode 100644 index 0000000000..f310119d3d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js @@ -0,0 +1,48 @@ +/// 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: "15.4.4.22-9-c-ii-37", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js", + + description: "Array.prototype.reduceRight - the global object can be used as accumulator", + + test: function testcase() { + + var accessed = false; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + return prevVal === fnGlobalObject(); + } + + var obj = { 0: 11, length: 1 }; + + return Array.prototype.reduceRight.call(obj, callbackfn, fnGlobalObject()) === true && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js new file mode 100644 index 0000000000..9bf304121d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js @@ -0,0 +1,54 @@ +/// 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: "15.4.4.22-9-c-ii-4", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js", + + description: "Array.prototype.reduceRight - k values are passed in acending numeric order", + + test: function testcase() { + + var arr = [0, 1, 2, 3, 4, 5]; + var lastIdx = arr.length - 1; + var accessed = false; + var result = true; + + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (lastIdx !== idx) { + result = false; + } else { + lastIdx--; + } + } + arr.reduceRight(callbackfn, 1); + return result && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js new file mode 100644 index 0000000000..f2969363be --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js @@ -0,0 +1,60 @@ +/// 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: "15.4.4.22-9-c-ii-5", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js", + + description: "Array.prototype.reduceRight - k values are accessed during each iteration and not prior to starting the loop on an Array", + + test: function testcase() { + var arr = [11, 12, 13, 14]; + var kIndex = []; + var result = true; + var called = 0; + + //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time. + function callbackfn(preVal, curVal, idx, o) { + //Each position should be visited one time, which means k is accessed one time during iterations. + called++; + if (typeof kIndex[idx] === "undefined") { + //when current position is visited, its next index should has been visited. + if (idx !== arr.length - 1 && typeof kIndex[idx + 1] === "undefined") { + result = false; + } + kIndex[idx] = 1; + } else { + result = false; + } + } + + arr.reduceRight(callbackfn, 1); + return result && called === 4; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js new file mode 100644 index 0000000000..26055d322b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js @@ -0,0 +1,58 @@ +/// 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: "15.4.4.22-9-c-ii-7", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js", + + description: "Array.prototype.reduceRight - unhandled exceptions happened in callbackfn terminate iteration", + + test: function testcase() { + + var accessed = false; + + function callbackfn(prevVal, curVal, idx, obj) { + if (idx < 10) { + accessed = true; + } + if (idx === 10) { + throw new Error("Exception occurred in callbackfn"); + } + } + + var obj = { 0: 11, 4: 10, 10: 8, length: 20 }; + + try { + Array.prototype.reduceRight.call(obj, callbackfn, 1); + return false; + } catch (ex) { + return !accessed; + } + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js new file mode 100644 index 0000000000..6310e612a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js @@ -0,0 +1,50 @@ +/// 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: "15.4.4.22-9-c-ii-8", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js", + + description: "Array.prototype.reduceRight - element changed by callbackfn on previous iterations is observed", + + test: function testcase() { + + var accessed = false; + var obj = { 0: 11, 1: 12, length: 2 }; + function callbackfn(prevVal, curVal, idx, obj) { + accessed = true; + if (idx === 1) { + obj[idx - 1] = 8; + } + return curVal > 10; + } + + return Array.prototype.reduceRight.call(obj, callbackfn, 1) === false && accessed; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js new file mode 100644 index 0000000000..581d7722aa --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js @@ -0,0 +1,47 @@ +/// 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: "15.4.4.22-9-c-ii-9", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js", + + description: "Array.prototype.reduceRight - callbackfn is called with 0 formal parameter", + + test: function testcase() { + + var called = 0; + + function callbackfn() { + called++; + return true; + } + + return [11, 12].reduceRight(callbackfn, 11) === true && 2 === called; + }, + + precondition: function prereq() { + return fnExists(Array.prototype.reduceRight); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js new file mode 100644 index 0000000000..da782b7c24 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js @@ -0,0 +1,67 @@ +/// 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: "15.4.4.4-5-b-iii-3-b-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js", + + description: "Array.prototype.concat will concat an Array when index property (read-only) exists in Array.prototype (Step 5.b.iii.3.b)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 100, + writable: false, + configurable: true + }); + + var oldArr = [101]; + + var newArr = Array.prototype.concat.call(oldArr); + + var verifyValue = false; + verifyValue = newArr[0] === 101; + + var verifyEnumerable = false; + for (var p in newArr) { + if (p === "0" && newArr.hasOwnProperty("0")) { + verifyEnumerable = true; + } + } + + var verifyWritable = false; + newArr[0] = 12; + verifyWritable = newArr[0] === 12; + + var verifyConfigurable = false; + delete newArr[0]; + verifyConfigurable = newArr.hasOwnProperty("0"); + + return verifyValue && !verifyConfigurable && verifyEnumerable && verifyWritable; + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js new file mode 100644 index 0000000000..d890305a35 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js @@ -0,0 +1,68 @@ +/// 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: "15.4.4.4-5-c-i-1", + + path: "TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js", + + description: "Array.prototype.concat will concat an Array when index property (read-only) exists in Array.prototype (Step 5.c.i)", + + test: function testcase() { + try { + Object.defineProperty(Array.prototype, "0", { + value: 100, + writable: false, + configurable: true + }); + + var newArr = Array.prototype.concat.call(101); + + return newArr.hasOwnProperty("0") && newArr[0] === 101; + + var verifyValue = false; + verifyValue = newArr[0] === 101; + + var verifyEnumerable = false; + for (var p in newArr) { + if (p === "0" && newArr.hasOwnProperty("0")) { + verifyEnumerable = true; + } + } + + var verifyWritable = false; + newArr[0] = 12; + verifyWritable = newArr[0] === 12; + + var verifyConfigurable = false; + delete newArr[0]; + verifyConfigurable = newArr.hasOwnProperty("0"); + + return verifyValue && !verifyConfigurable && verifyEnumerable && verifyWritable; + + } finally { + delete Array.prototype[0]; + } + }, + + precondition: function prereq() { + return fnExists(Object.defineProperty); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5-1.js new file mode 100644 index 0000000000..58aa5b6935 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5-1.js @@ -0,0 +1,36 @@ +/// 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: "15.4.5-1", + +path: "TestCases/chapter15/15.4/15.4.5/15.4.5-1.js", + +description: "Array instances have [[Class]] set to 'Array'", + +test: function testcase() { + var a = []; + var s = Object.prototype.toString.call(a); + if (s === '[object Array]') { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-1.js new file mode 100644 index 0000000000..81104c72cc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-1.js @@ -0,0 +1,36 @@ +/// 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: "15.4.5.1-3.d-1", + +path: "TestCases/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-1.js", + +description: "Throw RangeError if attempt to set array length property to 4294967296 (2**32)", + +test: function testcase() { + try { + [].length = 4294967296 ; + } catch (e) { + if (e instanceof RangeError) return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-2.js new file mode 100644 index 0000000000..c1f1395a0d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-2.js @@ -0,0 +1,36 @@ +/// 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: "15.4.5.1-3.d-2", + +path: "TestCases/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-2.js", + +description: "Throw RangeError if attempt to set array length property to 4294967297 (1+2**32)", + +test: function testcase() { + try { + [].length = 4294967297 ; + } catch (e) { + if (e instanceof RangeError) return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-3.js b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-3.js new file mode 100644 index 0000000000..165826ba17 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-3.js @@ -0,0 +1,34 @@ +/// 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: "15.4.5.1-3.d-3", + +path: "TestCases/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-3.d-3.js", + +description: "Set array length property to max value 4294967295 (2**32-1,)", + +test: function testcase() { + var a =[]; + a.length = 4294967295 ; + return a.length===4294967295 ; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-5-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-5-1.js new file mode 100644 index 0000000000..2a3f5eb3c7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-5-1.js @@ -0,0 +1,34 @@ +/// 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: "15.4.5.1-5-1", + +path: "TestCases/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-5-1.js", + +description: "Defining a property named 4294967295 (2**32-1)(not an array element)", + +test: function testcase() { + var a =[]; + a[4294967295] = "not an array element" ; + return a[4294967295] === "not an array element"; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-5-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-5-2.js new file mode 100644 index 0000000000..fc84115cee --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-5-2.js @@ -0,0 +1,34 @@ +/// 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: "15.4.5.1-5-2", + +path: "TestCases/chapter15/15.4/15.4.5/15.4.5.1/15.4.5.1-5-2.js", + +description: "Defining a property named 4294967295 (2**32-1) doesn't change length of the array", + +test: function testcase() { + var a =[0,1,2]; + a[4294967295] = "not an array element" ; + return a.length===3; + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-0-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-0-1.js new file mode 100644 index 0000000000..5a0fc3c2ce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.5.4.20-0-1", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-0-1.js", + +description: "String.prototype.trim must exist as a function", + +test: function testcase() { + var f = String.prototype.trim; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-0-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-0-2.js new file mode 100644 index 0000000000..9ce4c6a1ac --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-0-2", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-0-2.js", + +description: "String.prototype.trim must exist as a function taking 0 parameters", + +test: function testcase() { + if (String.prototype.trim.length === 0) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1.js new file mode 100644 index 0000000000..4270a4064c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1.js @@ -0,0 +1,44 @@ +/// 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: "15.5.4.20-1-1", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1.js", + +description: "String.prototype.trim throws TypeError when string is undefined", + +test: function testcase() { + try + { + String.prototype.trim.call(undefined); + return false; + } + catch(e) + { + return e instanceof TypeError; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2.js new file mode 100644 index 0000000000..b8036fbf21 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2.js @@ -0,0 +1,44 @@ +/// 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: "15.5.4.20-1-2", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2.js", + +description: "String.prototype.trim throws TypeError when string is null", + +test: function testcase() { + try + { + String.prototype.trim.call(null); + return false; + } + catch(e) + { + return e instanceof TypeError; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-3.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-3.js new file mode 100644 index 0000000000..06b09be6f4 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-3.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: "15.5.4.20-1-3", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-3.js", + +description: "String.prototype.trim works for primitive type boolean", + +test: function testcase() { + try + { + if(String.prototype.trim.call(true) == "true") + return true; + } + catch(e) + { + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-4.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-4.js new file mode 100644 index 0000000000..28b2259bbf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-4.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: "15.5.4.20-1-4", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-4.js", + +description: "String.prototype.trim works for primitive type number", + +test: function testcase() { + try + { + if(String.prototype.trim.call(0) == "0") + return true; + } + catch(e) + { + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-5.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-5.js new file mode 100644 index 0000000000..052a0106cb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-5.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: "15.5.4.20-1-5", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-5.js", + +description: "String.prototype.trim works for an Object", + +test: function testcase() { + try + { + if(String.prototype.trim.call({})=="[object Object]") + return true; + } + catch(e) + { + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-6.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-6.js new file mode 100644 index 0000000000..3155836c64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-6.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: "15.5.4.20-1-6", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-6.js", + +description: "String.prototype.trim works for an String", + +test: function testcase() { + try + { + if(String.prototype.trim.call(new String()) == "") + return true; + } + catch(e) + { + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-7.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-7.js new file mode 100644 index 0000000000..ddb35c75ba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-7.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: "15.5.4.20-1-7", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-7.js", + +description: "String.prototype.trim works for a primitive string", + +test: function testcase() { + try + { + if(String.prototype.trim.call("abc") === "abc") + return true; + } + catch(e) + { + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-8.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-8.js new file mode 100644 index 0000000000..87ffecb874 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-8.js @@ -0,0 +1,37 @@ +/// 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: "15.5.4.20-1-8", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-8.js", + + description: "String.prototype.trim works for a primitive string (value is ' abc') ", + + test: function testcase() { + var strObj = String(" abc"); + return "abc" === strObj.trim() && strObj.toString() === " abc"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-9.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-9.js new file mode 100644 index 0000000000..dc84849d9c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-9.js @@ -0,0 +1,37 @@ +/// 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: "15.5.4.20-1-9", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-9.js", + + description: "String.prototype.trim works for a String object which value is undefined", + + test: function testcase() { + var strObj = new String(undefined); + return strObj.trim() === "undefined"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-1.js new file mode 100644 index 0000000000..30fedc2d46 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-1.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-1", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-1.js", + + description: "String.prototype.trim - argument 'this' is a boolean whose value is false", + + test: function testcase() { + return String.prototype.trim.call(false) === "false"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-10.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-10.js new file mode 100644 index 0000000000..3c6b1fc67d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-10.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-10", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-10.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is +Infinity)", + + test: function testcase() { + return String.prototype.trim.call(+Infinity) === "Infinity"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-11.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-11.js new file mode 100644 index 0000000000..00cf6c3834 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-11.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-11", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-11.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is -Infinity)", + + test: function testcase() { + return String.prototype.trim.call(-Infinity) === "-Infinity"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-12.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-12.js new file mode 100644 index 0000000000..898a984167 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-12.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-12", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-12.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 1(following 20 zeros))", + + test: function testcase() { + return String.prototype.trim.call(100000000000000000000) === "100000000000000000000"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-13.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-13.js new file mode 100644 index 0000000000..b2e773f438 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-13.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-13", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-13.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 1(following 21 zeros))", + + test: function testcase() { + return String.prototype.trim.call(1000000000000000000000) === "1e+21"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-14.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-14.js new file mode 100644 index 0000000000..3fa04cf4b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-14.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-14", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-14.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 1(following 22 zeros))", + + test: function testcase() { + return String.prototype.trim.call(10000000000000000000000) === "1e+22"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-15.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-15.js new file mode 100644 index 0000000000..46a402f270 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-15.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-15", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-15.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 1e+20)", + + test: function testcase() { + return String.prototype.trim.call(1e+20) === "100000000000000000000"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-16.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-16.js new file mode 100644 index 0000000000..9639a86b47 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-16.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-16", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-16.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to string (value is 1e+21)", + + test: function testcase() { + return String.prototype.trim.call(1e+21) === "1e+21"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-17.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-17.js new file mode 100644 index 0000000000..5d8bc7f322 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-17.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-17", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-17.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to string (value is 1e+22)", + + test: function testcase() { + return String.prototype.trim.call(1e+22) === "1e+22"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-18.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-18.js new file mode 100644 index 0000000000..2c067e42a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-18.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-18", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-18.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 0.000001)", + + test: function testcase() { + return String.prototype.trim.call(0.000001) === "0.000001"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-19.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-19.js new file mode 100644 index 0000000000..5f522b7269 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-19.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-19", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-19.js", + + description: "String.prototype.trim - argument argument 'this' is a number that converts to a string (value is 0.0000001)", + + test: function testcase() { + return String.prototype.trim.call(0.0000001) === "1e-7"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-2.js new file mode 100644 index 0000000000..1dd3f8f295 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-2.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-2", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-2.js", + + description: "String.prototype.trim - argument 'this' is a boolean whose value is true", + + test: function testcase() { + return String.prototype.trim.call(true) === "true"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-20.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-20.js new file mode 100644 index 0000000000..8a6df876c9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-20.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-20", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-20.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 0.00000001)", + + test: function testcase() { + return String.prototype.trim.call(0.00000001) === "1e-8"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-21.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-21.js new file mode 100644 index 0000000000..af4d89fb6a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-21.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-21", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-21.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 1e-7)", + + test: function testcase() { + return String.prototype.trim.call(1e-7) === "1e-7"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-22.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-22.js new file mode 100644 index 0000000000..8f04016f98 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-22.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-22", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-22.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 1e-6)", + + test: function testcase() { + return String.prototype.trim.call(1e-6) === "0.000001"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-23.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-23.js new file mode 100644 index 0000000000..1c7e17ebbd --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-23.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-23", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-23.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 1e-5)", + + test: function testcase() { + return String.prototype.trim.call(1e-5) === "0.00001"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-24.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-24.js new file mode 100644 index 0000000000..db8f7497a1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-24.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-24", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-24.js", + + description: "String.prototype.trim - argument 'this' is an integer that converts to a string (value is 123)", + + test: function testcase() { + return String.prototype.trim.call(123) === "123"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-25.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-25.js new file mode 100644 index 0000000000..9f93f8fa63 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-25.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-25", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-25.js", + + description: "String.prototype.trim - argument 'this' is a decimal that converts to a string (value is 123.456)", + + test: function testcase() { + return String.prototype.trim.call(123.456) === "123.456"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-26.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-26.js new file mode 100644 index 0000000000..a253df99f8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-26.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-26", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-26.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 1(following 20 zeros).123)", + + test: function testcase() { + return String.prototype.trim.call(100000000000000000000.123) === "100000000000000000000"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-27.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-27.js new file mode 100644 index 0000000000..811a7f96a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-27.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-27", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-27.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 123.1234567)", + + test: function testcase() { + return String.prototype.trim.call(123.1234567) === "123.1234567"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-28.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-28.js new file mode 100644 index 0000000000..2a66d2566a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-28.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-28", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-28.js", + + description: "String.prototype.trim - argument 'this' is an empty string ", + + test: function testcase() { + return String.prototype.trim.call("") === ""; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-29.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-29.js new file mode 100644 index 0000000000..0d95018db6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-29.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-29", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-29.js", + + description: "String.prototype.trim - argument 'this' is a string(value is 'AB\n\\cd')", + + test: function testcase() { + return String.prototype.trim.call("AB\n\\cd") === "AB\n\\cd"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-3.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-3.js new file mode 100644 index 0000000000..80ad4cd249 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-3.js @@ -0,0 +1,36 @@ + /// 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: "15.5.4.20-2-3", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-3.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is NaN)", + + test: function testcase() { + return String.prototype.trim.call(NaN) === "NaN"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-30.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-30.js new file mode 100644 index 0000000000..3ada99fc15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-30.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-30", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-30.js", + + description: "String.prototype.trim - argument 'this' is a string(value is 'undefined') ", + + test: function testcase() { + return String.prototype.trim.call("undefined") === "undefined"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-31.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-31.js new file mode 100644 index 0000000000..9127ff54e0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-31.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-31", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-31.js", + + description: "String.prototype.trim - argument 'this' is a string(value is 'null') ", + + test: function testcase() { + return String.prototype.trim.call("null") === "null"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-32.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-32.js new file mode 100644 index 0000000000..08d7dd918e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-32.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-32", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-32.js", + + description: "String.prototype.trim - argument 'this' is a string(value is '123#$%abc')", + + test: function testcase() { + return String.prototype.trim.call("123#$%abc") === "123#$%abc"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-33.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-33.js new file mode 100644 index 0000000000..34118135ea --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-33.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-33", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-33.js", + + description: "String.prototype.trim - argument 'this' is a string(value is '1')", + + test: function testcase() { + return String.prototype.trim.call("1") === "1"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-34.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-34.js new file mode 100644 index 0000000000..6028d815eb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-34.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-34", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-34.js", + + description: "String.prototype.trim - 'this' is an array that converts to a string", + + test: function testcase() { + return (String.prototype.trim.call([1]) === '1'); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-35.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-35.js new file mode 100644 index 0000000000..a5602c48ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-35.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-35", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-35.js", + + description: "String.prototype.trim - 'this' is a String Object that converts to a string", + + test: function testcase() { + return (String.prototype.trim.call(new String("abc")) === "abc"); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-36.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-36.js new file mode 100644 index 0000000000..93c66ef9a9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-36.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-36", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-36.js", + + description: "String.prototype.trim - 'this' is a Boolean Object that converts to a string", + + test: function testcase() { + return (String.prototype.trim.call(new Boolean(false)) === "false"); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-37.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-37.js new file mode 100644 index 0000000000..e682a1bd84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-37.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-37", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-37.js", + + description: "String.prototype.trim - 'this' is a Number Object that converts to a string", + + test: function testcase() { + return (String.prototype.trim.call(new Number(123)) === "123"); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-38.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-38.js new file mode 100644 index 0000000000..f2721532f3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-38.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: "15.5.4.20-2-38", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-38.js", + + description: "String.prototype.trim - 'this' is an object which has an own toString method", + + test: function testcase() { + var obj = { + toString: function () { + return "abc"; + } + }; + + return (String.prototype.trim.call(obj) === "abc"); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-39.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-39.js new file mode 100644 index 0000000000..1bb942a5de --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-39.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: "15.5.4.20-2-39", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-39.js", + + description: "String.prototype.trim - 'this' is an object which has an own valueOf method", + + test: function testcase() { + var obj = { + valueOf: function () { + return "abc"; + } + }; + + return (String.prototype.trim.call(obj) === "[object Object]"); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-4.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-4.js new file mode 100644 index 0000000000..2c3459ff64 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-4.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-4", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-4.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is 0)", + + test: function testcase() { + return String.prototype.trim.call(0) === "0"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-40.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-40.js new file mode 100644 index 0000000000..8f2c73bc5f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-40.js @@ -0,0 +1,48 @@ +/// 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: "15.5.4.20-2-40", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-40.js", + + description: "String.prototype.trim - 'this' is an object that has an own toString method that returns an object and valueOf method that returns a primitive value", + + test: function testcase() { + var toStringAccessed = false; + var valueOfAccessed = false; + var obj = { + toString: function () { + toStringAccessed = true; + return {}; + }, + valueOf: function () { + valueOfAccessed = true; + return "abc"; + } + }; + return (String.prototype.trim.call(obj) === "abc") && valueOfAccessed && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-41.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-41.js new file mode 100644 index 0000000000..2726ffd84f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-41.js @@ -0,0 +1,48 @@ +/// 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: "15.5.4.20-2-41", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-41.js", + + description: "String.prototype.trim - 'this' is an object which has an own toString and valueOf method.", + + test: function testcase() { + var toStringAccessed = false; + var valueOfAccessed = false; + var obj = { + toString: function () { + toStringAccessed = true; + return "abc"; + }, + valueOf: function () { + valueOfAccessed = true; + return "cef"; + } + }; + return (String.prototype.trim.call(obj) === "abc") && !valueOfAccessed && toStringAccessed; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-42.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-42.js new file mode 100644 index 0000000000..909df968a5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-42.js @@ -0,0 +1,53 @@ +/// 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: "15.5.4.20-2-42", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-42.js", + + description: "String.prototype.trim - TypeError exception was thrown when 'this' is an object that both toString and valueOf wouldn't return primitive value.", + + test: function testcase() { + var toStringAccessed = false; + var valueOfAccessed = false; + var obj = { + toString: function () { + toStringAccessed = true; + return {}; + }, + valueOf: function () { + valueOfAccessed = true; + return {}; + } + }; + try { + String.prototype.trim.call(obj); + return false; + } catch (e) { + return valueOfAccessed && toStringAccessed && (e instanceof TypeError); + } + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-43.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-43.js new file mode 100644 index 0000000000..825f79490b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-43.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: "15.5.4.20-2-43", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-43.js", + + description: "String.prototype.trim - 'this' is an object with an own valueOf and inherited toString methods with hint string, verify inherited toString method will be called first", + + test: function testcase() { + + var toStringAccessed = false; + var valueOfAccessed = false; + + var proto = { + toString: function () { + toStringAccessed = true; + return "abc"; + } + }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.valueOf = function () { + valueOfAccessed = true; + return "efg"; + }; + return (String.prototype.trim.call(child) === "abc") && toStringAccessed && !valueOfAccessed; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-44.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-44.js new file mode 100644 index 0000000000..e19bc5ca5a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-44.js @@ -0,0 +1,37 @@ +/// 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: "15.5.4.20-2-44", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-44.js", + + description: "String.prototype.trim - 'this' is a string that contains east Asian characters (value is 'SD咕噜')", + + test: function testcase() { + var str = "SD咕噜"; + return str.trim() === str; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-45.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-45.js new file mode 100644 index 0000000000..7e51f0b3b7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-45.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-2-45", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-45.js", + + description: "String.prototype.trim - 'this' is a string that contains white space, character, number, object and null characters", + + test: function testcase() { + var str = "abc" + " " + 123 + " " + {} + " " + "\u0000"; + var str1 = " " + str + " "; + return str1.trim() === str; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-46.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-46.js new file mode 100644 index 0000000000..3175c6e075 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-46.js @@ -0,0 +1,37 @@ +/// 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: "15.5.4.20-2-46", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-46.js", + + description: "String.prototype.trim - 'this' is a Function Object that converts to a string", + + test: function testcase() { + var funObj = function () { return arguments; }; + return String.prototype.trim.call(funObj) === "function () { return arguments; }"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-47.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-47.js new file mode 100644 index 0000000000..f4077ccf06 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-47.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-47", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-47.js", + + description: "String.prototype.trim - 'this' is a object Object that converts to a string", + + test: function testcase() { + return String.prototype.trim.call({}) === "[object Object]"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-48.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-48.js new file mode 100644 index 0000000000..ca65e29a44 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-48.js @@ -0,0 +1,37 @@ +/// 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: "15.5.4.20-2-48", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-48.js", + + description: "String.prototype.trim - 'this' is a Date Object that converts to a string", + + test: function testcase() { + var dateObj = new Date(); + return String.prototype.trim.call(dateObj) === dateObj.toString(); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-49.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-49.js new file mode 100644 index 0000000000..a8c556eae1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-49.js @@ -0,0 +1,37 @@ +/// 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: "15.5.4.20-2-49", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-49.js", + + description: "String.prototype.trim - 'this' is a RegExp Object that converts to a string", + + test: function testcase() { + var regObj = new RegExp(/test/); + return String.prototype.trim.call(regObj) === "/test/"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-5.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-5.js new file mode 100644 index 0000000000..9282ee238b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-5.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-5", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-5.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is +0)", + + test: function testcase() { + return String.prototype.trim.call(+0) === "0"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-50.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-50.js new file mode 100644 index 0000000000..7a67c3170d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-50.js @@ -0,0 +1,37 @@ +/// 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: "15.5.4.20-2-50", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-50.js", + + description: "String.prototype.trim - 'this' is a Error Object that converts to a string", + + test: function testcase() { + var errObj = new Error("test"); + return String.prototype.trim.call(errObj) === "Error: test"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-51.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-51.js new file mode 100644 index 0000000000..a464b28aba --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-51.js @@ -0,0 +1,37 @@ +/// 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: "15.5.4.20-2-51", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-51.js", + + description: "String.prototype.trim - 'this' is a Arguments Object that converts to a string", + + test: function testcase() { + var argObj = function () { return arguments; } (1, 2, true); + return String.prototype.trim.call(argObj) === "[object Arguments]"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-52.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-52.js new file mode 100644 index 0000000000..31c6b8b38b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-52.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-52", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-52.js", + + description: "String.prototype.trim - 'this' is the host object - fnGlobalObject() that converts to a string", + + test: function testcase() { + return String.prototype.trim.call(fnGlobalObject()) === fnGlobalObject().toString().trim(); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-6.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-6.js new file mode 100644 index 0000000000..7f3630bd9f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-6.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-6", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-6.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is -0)", + + test: function testcase() { + return String.prototype.trim.call(-0) === "0"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-7.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-7.js new file mode 100644 index 0000000000..274c196ccf --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-7.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-7", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-7.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is positive number)", + + test: function testcase() { + return String.prototype.trim.call(30) === "30"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-8.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-8.js new file mode 100644 index 0000000000..4fa9b80ece --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-8.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-8", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-8.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is negative number)", + + test: function testcase() { + return String.prototype.trim.call(-20) === "-20"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-9.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-9.js new file mode 100644 index 0000000000..c597cefaab --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-9.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-2-9", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-2-9.js", + + description: "String.prototype.trim - argument 'this' is a number that converts to a string (value is Infinity)", + + test: function testcase() { + return String.prototype.trim.call(Infinity) === "Infinity"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-1.js new file mode 100644 index 0000000000..7eccaff9db --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-1.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-3-1", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-1.js", + + description: "String.prototype.trim - 'S' is a string with all LineTerminator", + + test: function testcase() { + + var lineTerminatorsStr = "\u000A\u000D\u2028\u2029"; + return (lineTerminatorsStr.trim() === ""); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-10.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-10.js new file mode 100644 index 0000000000..5deefd392a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-10.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-3-10", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-10.js", + + description: "String.prototype.trim - 'S' is a string with null character ('\u0000')", + + test: function testcase() { + return "\u0000".trim() === "\u0000"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-11.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-11.js new file mode 100644 index 0000000000..3e5a884b68 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-11.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-3-11", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-11.js", + + description: "String.prototype.trim - 'S' is a string that starts with null character", + + test: function testcase() { + return "\0\u0000abc".trim() === "\0\u0000abc"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-12.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-12.js new file mode 100644 index 0000000000..994b2fb6ce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-12.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-3-12", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-12.js", + + description: "String.prototype.trim - 'S' is a string that ends with null character", + + test: function testcase() { + return "abc\0\u0000".trim() === "abc\0\u0000"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-13.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-13.js new file mode 100644 index 0000000000..c382aa1fe3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-13.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-3-13", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-13.js", + + description: "String.prototype.trim - 'S' is a string that starts with null character and ends with null character", + + test: function testcase() { + return "\0\u0000abc\0\u0000".trim() === "\0\u0000abc\0\u0000"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-14.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-14.js new file mode 100644 index 0000000000..3a93c0c3e6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-14.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-3-14", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-14.js", + + description: "String.prototype.trim - 'S' is a string that has null character in the middle", + + test: function testcase() { + return "a\0\u0000bc".trim() === "a\0\u0000bc"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-2.js new file mode 100644 index 0000000000..9d607d5d4d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-2.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-3-2", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-2.js", + + description: "String.prototype.trim - 'S' is a string with all WhiteSpace", + + test: function testcase() { + + var whiteSpacesStr = "\u0009\u000A\u000B\u000C\u000D\u0020\u0085\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF"; + return (whiteSpacesStr.trim() === ""); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-3.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-3.js new file mode 100644 index 0000000000..77bebc0e53 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-3.js @@ -0,0 +1,40 @@ +/// 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: "15.5.4.20-3-3", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-3.js", + + description: "String.prototype.trim - 'S' is a string with all union of WhiteSpace and LineTerminator", + + test: function testcase() { + var lineTerminatorsStr = "\u000A\u000D\u2028\u2029"; + var whiteSpacesStr = "\u0009\u000A\u000B\u000C\u000D\u0020\u0085\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF"; + var str = whiteSpacesStr + lineTerminatorsStr; + + return (str.trim() === ""); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-4.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-4.js new file mode 100644 index 0000000000..707647289e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-4.js @@ -0,0 +1,40 @@ +/// 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: "15.5.4.20-3-4", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-4.js", + + description: "String.prototype.trim - 'S' is a string start with union of all LineTerminator and all WhiteSpace", + + test: function testcase() { + var lineTerminatorsStr = "\u000A\u000D\u2028\u2029"; + var whiteSpacesStr = "\u0009\u000A\u000B\u000C\u000D\u0020\u0085\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF"; + var str = whiteSpacesStr + lineTerminatorsStr + "abc"; + + return (str.trim() === "abc"); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-5.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-5.js new file mode 100644 index 0000000000..d6526febbb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-5.js @@ -0,0 +1,40 @@ +/// 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: "15.5.4.20-3-5", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-5.js", + + description: "String.prototype.trim - 'S' is a string end with union of all LineTerminator and all WhiteSpace", + + test: function testcase() { + var lineTerminatorsStr = "\u000A\u000D\u2028\u2029"; + var whiteSpacesStr = "\u0009\u000A\u000B\u000C\u000D\u0020\u0085\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF"; + var str = "abc" + whiteSpacesStr + lineTerminatorsStr ; + + return (str.trim() === "abc"); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-6.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-6.js new file mode 100644 index 0000000000..6146b340b3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-6.js @@ -0,0 +1,40 @@ +/// 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: "15.5.4.20-3-6", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-6.js", + + description: "String.prototype.trim - 'S' is a string start with union of all LineTerminator and all WhiteSpace and end with union of all LineTerminator and all WhiteSpace", + + test: function testcase() { + var lineTerminatorsStr = "\u000A\u000D\u2028\u2029"; + var whiteSpacesStr = "\u0009\u000A\u000B\u000C\u000D\u0020\u0085\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF"; + var str = whiteSpacesStr + lineTerminatorsStr + "abc" + whiteSpacesStr + lineTerminatorsStr; + + return (str.trim() === "abc"); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-7.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-7.js new file mode 100644 index 0000000000..1935ce8a84 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-7.js @@ -0,0 +1,40 @@ +/// 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: "15.5.4.20-3-7", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-7.js", + + description: "String.prototype.trim - 'S' is a string that union of LineTerminator and WhiteSpace in the middle", + + test: function testcase() { + var lineTerminatorsStr = "\u000A\u000D\u2028\u2029"; + var whiteSpacesStr = "\u0009\u000A\u000B\u000C\u000D\u0020\u0085\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF"; + var str = "ab" + whiteSpacesStr + lineTerminatorsStr + "cd"; + + return (str.trim() === str); + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-8.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-8.js new file mode 100644 index 0000000000..40369bf1b6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-8.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-3-8", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-8.js", + + description: "String.prototype.trim - 'S' is a string with all null character", + + test: function testcase() { + return "\0\u0000".trim() === "\0\u0000"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-9.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-9.js new file mode 100644 index 0000000000..385bfd330e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-9.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-3-9", + + path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-3-9.js", + + description: "String.prototype.trim - 'S' is a string with null character ('\0')", + + test: function testcase() { + return "\0".trim() === "\0"; + }, + + precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-1.js new file mode 100644 index 0000000000..62dc28cebc --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-1.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: "15.5.4.20-4-1", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-1.js", + +description: "String.prototype.trim handles multiline string with whitepace and lineterminators", + +test: function testcase() { +var s = "\u0009a b\ +c \u0009" + + + if (s.trim() === "a bc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js new file mode 100644 index 0000000000..4e59ded174 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-4-10", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\uFEFFabc)", + +test: function testcase() { + return "\uFEFFabc".trim() === "abc"; + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-11.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-11.js new file mode 100644 index 0000000000..63f89310b9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-11.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-11", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-11.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u0009)", + +test: function testcase() { + if ("abc\u0009".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-12.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-12.js new file mode 100644 index 0000000000..7871a279d3 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-12.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-12", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-12.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u000B)", + +test: function testcase() { + if ("abc\u000B".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-13.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-13.js new file mode 100644 index 0000000000..dfbc281b15 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-13.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-13", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-13.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u000C)", + +test: function testcase() { + if ("abc\u000C".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-14.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-14.js new file mode 100644 index 0000000000..4e72396208 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-14.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-14", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-14.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u0020)", + +test: function testcase() { + if ("abc\u0020".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-16.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-16.js new file mode 100644 index 0000000000..55c157b11d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-16.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-16", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-16.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u00A0)", + +test: function testcase() { + if ("abc\u00A0".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js new file mode 100644 index 0000000000..4c6c8fc4b2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-4-18", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\uFEFF)", + +test: function testcase() { + return "abc\uFEFF".trim() === "abc"; + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-19.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-19.js new file mode 100644 index 0000000000..935f61d5c2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-19.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-19", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-19.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u0009abc\\u0009)", + +test: function testcase() { + if ("\u0009abc\u0009".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-2.js new file mode 100644 index 0000000000..dd3c73c595 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-2.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-2", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-2.js", + +description: "String.prototype.trim handles whitepace and lineterminators ( \\u0009abc \\u0009)", + +test: function testcase() { + if (" \u0009abc \u0009".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-20.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-20.js new file mode 100644 index 0000000000..c93fceb45a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-20.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-20", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-20.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000Babc\\u000B)", + +test: function testcase() { + if ("\u000Babc\u000B".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-21.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-21.js new file mode 100644 index 0000000000..8d983342d6 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-21.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-21", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-21.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000Cabc\\u000C)", + +test: function testcase() { + if ("\u000Cabc\u000C".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-22.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-22.js new file mode 100644 index 0000000000..6ae4082081 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-22.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-22", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-22.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u0020abc\\u0020)", + +test: function testcase() { + if ("\u0020abc\u0020".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-24.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-24.js new file mode 100644 index 0000000000..e5cdd16d16 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-24.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-24", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-24.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u00A0abc\\u00A0)", + +test: function testcase() { + if ("\u00A0abc\u00A0".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-27.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-27.js new file mode 100644 index 0000000000..131e96a17d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-27.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-27", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-27.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u0009\\u0009)", + +test: function testcase() { + if ("\u0009\u0009".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-28.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-28.js new file mode 100644 index 0000000000..aa1151cc49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-28.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-28", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-28.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000B\\u000B)", + +test: function testcase() { + if ("\u000B\u000B".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-29.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-29.js new file mode 100644 index 0000000000..b416f8569b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-29.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-29", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-29.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000C\\u000C)", + +test: function testcase() { + if ("\u000C\u000C".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-3.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-3.js new file mode 100644 index 0000000000..552c130584 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-3.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-3", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-3.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u0009abc)", + +test: function testcase() { + if ("\u0009abc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-30.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-30.js new file mode 100644 index 0000000000..0a290bde03 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-30.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-30", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-30.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u0020\\u0020)", + +test: function testcase() { + if ("\u0020\u0020".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-32.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-32.js new file mode 100644 index 0000000000..d875c76d42 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-32.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-32", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-32.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u00A0\\u00A0)", + +test: function testcase() { + if ("\u00A0\u00A0".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js new file mode 100644 index 0000000000..8652d23570 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js @@ -0,0 +1,36 @@ +/// 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: "15.5.4.20-4-34", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\uFEFF\\uFEFF)", + +test: function testcase() { + return "\uFEFF\uFEFF".trim() === ""; + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-35.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-35.js new file mode 100644 index 0000000000..b1f1d4bc91 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-35.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-35", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-35.js", + +description: "String.prototype.trim handles whitepace and lineterminators (ab\\u0009c)", + +test: function testcase() { + if ("ab\u0009c".trim() === "ab\u0009c") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-36.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-36.js new file mode 100644 index 0000000000..df5f6c2492 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-36.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-36", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-36.js", + +description: "String.prototype.trim handles whitepace and lineterminators (ab\\u000Bc)", + +test: function testcase() { + if ("ab\u000Bc".trim() === "ab\u000Bc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-37.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-37.js new file mode 100644 index 0000000000..3fa478e10d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-37.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-37", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-37.js", + +description: "String.prototype.trim handles whitepace and lineterminators (ab\\u000Cc)", + +test: function testcase() { + if ("ab\u000Cc".trim() === "ab\u000Cc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-38.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-38.js new file mode 100644 index 0000000000..c427ba1aa0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-38.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-38", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-38.js", + +description: "String.prototype.trim handles whitepace and lineterminators (ab\\u0020c)", + +test: function testcase() { + if ("ab\u0020c".trim() === "ab\u0020c") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-39.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-39.js new file mode 100644 index 0000000000..8c8cbd86af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-39.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-39", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-39.js", + +description: "String.prototype.trim handles whitepace and lineterminators (ab\\u0085c)", + +test: function testcase() { + if ("ab\u0085c".trim() === "ab\u0085c") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-4.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-4.js new file mode 100644 index 0000000000..dadc2e8eb0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-4.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-4", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-4.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000Babc)", + +test: function testcase() { + if ("\u000Babc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-40.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-40.js new file mode 100644 index 0000000000..10b4487750 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-40.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-40", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-40.js", + +description: "String.prototype.trim handles whitepace and lineterminators (ab\\u00A0c)", + +test: function testcase() { + if ("ab\u00A0c".trim() === "ab\u00A0c") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-41.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-41.js new file mode 100644 index 0000000000..be1a183c9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-41.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-41", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-41.js", + +description: "String.prototype.trim handles whitepace and lineterminators (ab\\u200Bc)", + +test: function testcase() { + if ("ab\u200Bc".trim() === "ab\u200Bc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-42.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-42.js new file mode 100644 index 0000000000..8d011f1af1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-42.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-42", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-42.js", + +description: "String.prototype.trim handles whitepace and lineterminators (ab\\uFEFFc)", + +test: function testcase() { + if ("ab\uFEFFc".trim() === "ab\uFEFFc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-43.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-43.js new file mode 100644 index 0000000000..9b4fa63c17 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-43.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-43", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-43.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000Aabc)", + +test: function testcase() { + if ("\u000Aabc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-44.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-44.js new file mode 100644 index 0000000000..da525b9561 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-44.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-44", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-44.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000Dabc)", + +test: function testcase() { + if ("\u000Dabc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-45.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-45.js new file mode 100644 index 0000000000..464688abc1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-45.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-45", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-45.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u2028abc)", + +test: function testcase() { + if ("\u2028abc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-46.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-46.js new file mode 100644 index 0000000000..1f5467b9eb --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-46.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-46", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-46.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u2029abc)", + +test: function testcase() { + if ("\u2029abc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-47.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-47.js new file mode 100644 index 0000000000..71a64f8497 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-47.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-47", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-47.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u000A)", + +test: function testcase() { + if ("abc\u000A".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-48.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-48.js new file mode 100644 index 0000000000..56d5547275 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-48.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-48", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-48.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u000D)", + +test: function testcase() { + if ("abc\u000D".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-49.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-49.js new file mode 100644 index 0000000000..00ac35c95f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-49.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-49", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-49.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u2028)", + +test: function testcase() { + if ("abc\u2028".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-5.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-5.js new file mode 100644 index 0000000000..fb23ee6562 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-5.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-5", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-5.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000Cabc)", + +test: function testcase() { + if ("\u000Cabc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-50.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-50.js new file mode 100644 index 0000000000..0191d4d9c1 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-50.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-50", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-50.js", + +description: "String.prototype.trim handles whitepace and lineterminators (abc\\u2029)", + +test: function testcase() { + if ("abc\u2029".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-51.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-51.js new file mode 100644 index 0000000000..604dce2b50 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-51.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-51", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-51.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000Aabc\\u000A)", + +test: function testcase() { + if ("\u000Aabc\u000A".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-52.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-52.js new file mode 100644 index 0000000000..d833503713 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-52.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-52", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-52.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000Dabc\\u000D)", + +test: function testcase() { + if ("\u000Dabc\u000D".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-53.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-53.js new file mode 100644 index 0000000000..18d956b944 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-53.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-53", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-53.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u2028abc\\u2028)", + +test: function testcase() { + if ("\u2028abc\u2028".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-54.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-54.js new file mode 100644 index 0000000000..000906c43f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-54.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-54", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-54.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u2029abc\\u2029)", + +test: function testcase() { + if ("\u2029abc\u2029".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-55.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-55.js new file mode 100644 index 0000000000..9a4220c0a0 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-55.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-55", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-55.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000A\\u000A)", + +test: function testcase() { + if ("\u000A\u000A".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-56.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-56.js new file mode 100644 index 0000000000..f672ec572b --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-56.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-56", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-56.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u000D\\u000D)", + +test: function testcase() { + if ("\u000D\u000D".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-57.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-57.js new file mode 100644 index 0000000000..2b64bd5548 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-57.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-57", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-57.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u2028\\u2028)", + +test: function testcase() { + if ("\u2028\u2028".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-58.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-58.js new file mode 100644 index 0000000000..d89ac3e9ef --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-58.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-58", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-58.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u2029\\u2029)", + +test: function testcase() { + if ("\u2029\u2029".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-59.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-59.js new file mode 100644 index 0000000000..73203dae11 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-59.js @@ -0,0 +1,40 @@ +/// 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: "15.5.4.20-4-59", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-59.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u2029abc as a multiline string)", + +test: function testcase() { + var s = "\u2029\ + abc"; + if (s.trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-6.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-6.js new file mode 100644 index 0000000000..b2a8b30eda --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-6.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-6", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-6.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u0020abc)", + +test: function testcase() { + if ("\u0020abc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-60.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-60.js new file mode 100644 index 0000000000..d31f7505c5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-60.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-60", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-60.js", + +description: "String.prototype.trim handles whitepace and lineterminators (string with just blanks)", + +test: function testcase() { + if (" ".trim() === "") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-8.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-8.js new file mode 100644 index 0000000000..b918d8faad --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-8.js @@ -0,0 +1,38 @@ +/// 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: "15.5.4.20-4-8", + +path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-8.js", + +description: "String.prototype.trim handles whitepace and lineterminators (\\u00A0abc)", + +test: function testcase() { + if ("\u00A0abc".trim() === "abc") { + return true; + } + }, + +precondition: function prereq() { + return fnExists(String.prototype.trim); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-1-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-1-1.js new file mode 100644 index 0000000000..08fd0f2dff --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-1-1.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-1-1", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-1-1.js", + +description: "String object supports bracket notation to lookup of data properties", + +test: function testcase() { + var s = new String("hello world"); + s.foo = 1; + + if (s["foo"] === 1) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-1-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-1-2.js new file mode 100644 index 0000000000..5acbdd9b3e --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-1-2.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-1-2", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-1-2.js", + +description: "String value supports bracket notation to lookup data properties", + +test: function testcase() { + var s = String("hello world"); + + if (s["foo"] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-1.js new file mode 100644 index 0000000000..024fbe5aa8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-1.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-3-1", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-1.js", + +description: "String object indexing returns undefined for missing data properties", + +test: function testcase() { + var s = new String("hello world"); + + if (s["foo"] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-2.js new file mode 100644 index 0000000000..e522fb4600 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-2.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-3-2", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-2.js", + +description: "String value indexing returns undefined for missing data properties", + +test: function testcase() { + var s = String("hello world"); + + if (s["foo"] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-3.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-3.js new file mode 100644 index 0000000000..49226ade9a --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-3.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-3-3", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-3.js", + +description: "String object indexing returns undefined if the numeric index (NaN) is not an array index", + +test: function testcase() { + var s = new String("hello world"); + + if (s[NaN] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-4.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-4.js new file mode 100644 index 0000000000..914dfedd70 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-4.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-3-4", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-4.js", + +description: "String object indexing returns undefined if the numeric index (Infinity) is not an array index", + +test: function testcase() { + var s = new String("hello world"); + + if (s[Infinity] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-5.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-5.js new file mode 100644 index 0000000000..b163393e52 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-5.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-3-5", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-5.js", + +description: "String object indexing returns undefined if the numeric index ( 2^32-1) is not an array index", + +test: function testcase() { + var s = new String("hello world"); + + if (s[Math.pow(2, 32)-1]===undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-6.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-6.js new file mode 100644 index 0000000000..2f689e73a2 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-6.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-3-6", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-6.js", + +description: "String value indexing returns undefined if the numeric index (NaN) is not an array index", + +test: function testcase() { + var s = String("hello world"); + + if (s[NaN] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-7.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-7.js new file mode 100644 index 0000000000..840878f789 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-7.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-3-7", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-7.js", + +description: "String value indexing returns undefined if the numeric index (Infinity) is not an array index", + +test: function testcase() { + var s = String("hello world"); + + if (s[Infinity] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-8.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-8.js new file mode 100644 index 0000000000..877c20be20 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-8.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-3-8", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-3-8.js", + +description: "String value indexing returns undefined if the numeric index ( >= 2^32-1) is not an array index", + +test: function testcase() { + var s = String("hello world"); + + if (s[Math.pow(2, 32)-1]===undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-1.js new file mode 100644 index 0000000000..fb74434b49 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-1.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-7-1", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-1.js", + +description: "String object indexing returns undefined if the numeric index is less than 0", + +test: function testcase() { + var s = new String("hello world"); + + if (s[-1] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-2.js new file mode 100644 index 0000000000..f5be90e180 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-2.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-7-2", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-2.js", + +description: "String value indexing returns undefined if the numeric index is less than 0", + +test: function testcase() { + var s = String("hello world"); + + if (s[-1] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-3.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-3.js new file mode 100644 index 0000000000..70459add4d --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-3.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-7-3", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-3.js", + +description: "String object indexing returns undefined if the numeric index is greater than the string length", + +test: function testcase() { + var s = new String("hello world"); + + if (s[11] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-4.js b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-4.js new file mode 100644 index 0000000000..fe76f25e5f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-4.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. + +/* +15.5.5.2 defines [[GetOwnProperty]] for Strings. It supports using indexing +notation to look up non numeric property names. +*/ + + +ES5Harness.registerTest( { +id: "15.5.5.5.2-7-4", + +path: "TestCases/chapter15/15.5/15.5.5/15.5.5.2/15.5.5.5.2-7-4.js", + +description: "String value indexing returns undefined if the numeric index is greater than the string length", + +test: function testcase() { + var s = String("hello world"); + + if (s[11] === undefined) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3-1.js b/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3-1.js new file mode 100644 index 0000000000..3153f15eb5 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3-1.js @@ -0,0 +1,34 @@ +/// 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: "15.7.3-1", + +path: "TestCases/chapter15/15.7/15.7.3/15.7.3-1.js", + +description: "Number constructor - [[Prototype]] is the Function prototype object", + +test: function testcase() { + if (Function.prototype.isPrototypeOf(Number) === true) { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3-2.js b/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3-2.js new file mode 100644 index 0000000000..5685dbe754 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3-2.js @@ -0,0 +1,39 @@ +/// 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: "15.7.3-2", + +path: "TestCases/chapter15/15.7/15.7.3/15.7.3-2.js", + +description: "Number constructor - [[Prototype]] is the Function prototype object (using getPrototypeOf)", + +test: function testcase() { + var p = Object.getPrototypeOf(Number); + if (p === Function.prototype) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3.1/15.7.3.1-1.js b/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3.1/15.7.3.1-1.js new file mode 100644 index 0000000000..b158d9ed10 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3.1/15.7.3.1-1.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: "15.7.3.1-1", + +path: "TestCases/chapter15/15.7/15.7.3/15.7.3.1/15.7.3.1-1.js", + +description: "Number.prototype is a data property with default attribute values (false)", + +test: function testcase() { + var d = Object.getOwnPropertyDescriptor(Number, 'prototype'); + + if (d.writable === false && + d.enumerable === false && + d.configurable === false) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Object.getOwnPropertyDescriptor); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3.1/15.7.3.1-2.js b/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3.1/15.7.3.1-2.js new file mode 100644 index 0000000000..957ac57b05 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.7/15.7.3/15.7.3.1/15.7.3.1-2.js @@ -0,0 +1,38 @@ +/// 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: "15.7.3.1-2", + +path: "TestCases/chapter15/15.7/15.7.3/15.7.3.1/15.7.3.1-2.js", + +description: "Number.prototype, initial value is the Number prototype object", + +test: function testcase() { + // assume that Number.prototype has not been modified. + return Object.getPrototypeOf(new Number(42))===Number.prototype; + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.7/15.7.4/15.7.4-1.js b/test/suite/ietestcenter/chapter15/15.7/15.7.4/15.7.4-1.js new file mode 100644 index 0000000000..1ec2775936 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.7/15.7.4/15.7.4-1.js @@ -0,0 +1,39 @@ +/// 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: "15.7.4-1", + +path: "TestCases/chapter15/15.7/15.7.3/15.7.4/15.7.4-1.js", + +description: "Number prototype object: its [[Class]] must be 'Number'", + +test: function testcase() { + var numProto = Object.getPrototypeOf(new Number(42)); + var s = Object.prototype.toString.call(numProto ); + return (s === '[object Number]') ; + }, + +precondition: function prereq() { + return fnExists(Object.getPrototypeOf); + } + +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.js b/test/suite/ietestcenter/chapter15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.js new file mode 100644 index 0000000000..91b896b624 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.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: "15.9.1.15-1", + + path: "TestCases/chapter15/15.9/15.9.1/15.9.1.15/15.9.1.15-1.js", + + description: "Date Time String Format - specified default values will be set for all optional fields(MM, DD, mm, ss and time zone) when they are absent", + + test: function testcase() { + var result = false; + var expectedDateTimeStr = "1970-01-01T00:00:00.000Z"; + var dateObj = new Date("1970"); + var dateStr = dateObj.toISOString(); + result = dateStr === expectedDateTimeStr; + return result; + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-1.js b/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-1.js new file mode 100644 index 0000000000..d4c962e56f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-1.js @@ -0,0 +1,36 @@ +/// 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: "15.9.4.4-0-1", + + path: "TestCases/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-1.js", + + description: "Date.now must exist as a function", + + test: function testcase() { + return typeof Date.now === "function"; + }, + + precondition: function prereq() { + return fnExists(Date.now); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-2.js b/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-2.js new file mode 100644 index 0000000000..9654e82224 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-2.js @@ -0,0 +1,36 @@ +/// 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: "15.9.4.4-0-2", + + path: "TestCases/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-2.js", + + description: "Date.now must exist as a function taking 0 parameters", + + test: function testcase() { + return Date.now.length === 0; + }, + + precondition: function prereq() { + return fnExists(Date.now); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-3.js b/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-3.js new file mode 100644 index 0000000000..32e1e1cbce --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-3.js @@ -0,0 +1,38 @@ +/// 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: "15.9.4.4-0-3", + + path: "TestCases/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-3.js", + + description: "Date.now must exist as a function", + + test: function testcase() { + + var fun = Date.now; + return (typeof (fun) === "function"); + }, + + precondition: function prereq() { + return fnExists(Date.now); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-4.js b/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-4.js new file mode 100644 index 0000000000..c88332e173 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-4.js @@ -0,0 +1,36 @@ +/// 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: "15.9.4.4-0-4", + + path: "TestCases/chapter15/15.9/15.9.4/15.9.4.4/15.9.4.4-0-4.js", + + description: "Date.now - returns number", + + test: function testcase() { + return typeof Date.now() === "number"; + }, + + precondition: function prereq() { + return fnExists(Date.now); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-10.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-10.js new file mode 100644 index 0000000000..d2390377e7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-10.js @@ -0,0 +1,53 @@ +/// 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: "15.9.5.43-0-10", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-10.js", + + description: "Date.prototype.toISOString - RangeError is not thrown when value of date is Date(1970, 0, -99999999, 0, 0, 0, 1), the time zone is UTC(0)", + + test: function testcase() { + var timeZoneMinutes = new Date().getTimezoneOffset() * (-1); + var date, dateStr; + + if (timeZoneMinutes > 0) { + date = new Date(1970, 0, -99999999, 0, 0, 0, 1); + + try { + date.toISOString(); + return false; + } catch (e) { + return e instanceof RangeError; + } + } else { + date = new Date(1970, 0, -99999999, 0, 0 + timeZoneMinutes + 60, 0, 1); + + dateStr = date.toISOString(); + + return dateStr[dateStr.length - 1] === "Z"; + } + }, + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-11.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-11.js new file mode 100644 index 0000000000..3151892033 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-11.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: "15.9.5.43-0-11", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-11.js", + + description: "Date.prototype.toISOString - RangeError is not thrown when value of date is Date(1970, 0, 100000001, 0, 0, 0, -1), the time zone is UTC(0)", + + test: function testcase() { + var timeZoneMinutes = new Date().getTimezoneOffset() * (-1); + var date, dateStr; + + date = new Date(1970, 0, 100000001, 0, 0 + timeZoneMinutes - 60, 0, -1); + dateStr = date.toISOString(); + + return dateStr[dateStr.length - 1] === "Z"; + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-12.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-12.js new file mode 100644 index 0000000000..a26efbcc45 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-12.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: "15.9.5.43-0-12", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-12.js", + + description: "Date.prototype.toISOString - RangeError is not thrown when value of date is Date(1970, 0, 100000001, 0, 0, 0, 0), the time zone is UTC(0)", + + test: function testcase() { + var timeZoneMinutes = new Date().getTimezoneOffset() * (-1); + var date, dateStr; + + date = new Date(1970, 0, 100000001, 0, 0 + timeZoneMinutes - 60, 0, 0); + dateStr = date.toISOString(); + + return dateStr[dateStr.length - 1] === "Z"; + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-13.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-13.js new file mode 100644 index 0000000000..2de448b059 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-13.js @@ -0,0 +1,50 @@ +/// 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: "15.9.5.43-0-13", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-13.js", + + description: "Date.prototype.toISOString - RangeError is thrown when value of date is Date(1970, 0, 100000001, 0, 0, 0, 1), the time zone is UTC(0)", + + test: function testcase() { + var timeZoneMinutes = new Date().getTimezoneOffset() * (-1); + var date, dateStr; + try { + if (timeZoneMinutes > 0) { + date = new Date(1970, 0, 100000001, 0, 0 + timeZoneMinutes + 60, 0, 1); + dateStr = date.toISOString(); + return false; + } else { + date = new Date(1970, 0, 100000001, 0, 0, 0, 1); + dateStr = date.toISOString(); + return false; + } + } catch (e) { + return e instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-14.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-14.js new file mode 100644 index 0000000000..49f8c7faae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-14.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: "15.9.5.43-0-14", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-14.js", + + description: "Date.prototype.toISOString - when value of year is -Infinity Date.prototype.toISOString throw the RangeError", + + test: function testcase() { + var date = new Date(-Infinity, 1, 70, 0, 0, 0); + + try { + date.toISOString(); + } catch (ex) { + return ex instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-15.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-15.js new file mode 100644 index 0000000000..ed79c5b7ae --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-15.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: "15.9.5.43-0-15", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-15.js", + + description: "Date.prototype.toISOString - value of year is Infinity Date.prototype.toISOString throw the RangeError", + + test: function testcase() { + var date = new Date(Infinity, 1, 70, 0, 0, 0); + + try { + date.toISOString(); + } catch (ex) { + return ex instanceof RangeError; + } + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-16.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-16.js new file mode 100644 index 0000000000..e031459475 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-16.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: "15.9.5.43-0-16", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-16.js", + + description: "Date.prototype.toISOString - when this is a String object that value format is 'YYYY-MM-DDTHH:mm:ss.sssZ' Date.prototype.toISOString throw the TypeError", + + test: function testcase() { + var date = new String("1970-01-00000:00:00.000Z"); + + try { + Date.prototype.toISOString.call(date); + return false; + } catch (ex) { + return ex instanceof TypeError; + } + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-2.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-2.js new file mode 100644 index 0000000000..e377d98e2c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-2.js @@ -0,0 +1,36 @@ +/// 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: "15.9.5.43-0-2", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-2.js", + + description: "Date.prototype.toISOString must exist as a function taking 0 parameters", + + test: function testcase() { + return Date.prototype.toISOString.length === 0; + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-3.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-3.js new file mode 100644 index 0000000000..589915aba7 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-3.js @@ -0,0 +1,36 @@ +/// 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: "15.9.5.43-0-3", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-3.js", + + description: "Date.prototype.toISOString must exist as a function", + + test: function testcase() { + return typeof (Date.prototype.toISOString) === "function"; + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-4.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-4.js new file mode 100644 index 0000000000..5460de72e8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-4.js @@ -0,0 +1,39 @@ +/// 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: "15.9.5.43-0-4", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-4.js", + + description: "Date.prototype.toISOString - format of returned string is 'YYYY-MM-DDTHH:mm:ss.sssZ', the time zone is UTC(0)", + + test: function testcase() { + var date = new Date(1999, 09, 10, 10, 10, 10, 10); + var localDate = new Date(date.getTime() - date.getTimezoneOffset() * 60000); + + return localDate.toISOString() === "1999-10-10T10:10:10.010Z"; + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-5.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-5.js new file mode 100644 index 0000000000..e6c0cc5bb8 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-5.js @@ -0,0 +1,37 @@ +/// 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: "15.9.5.43-0-5", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-5.js", + + description: "Date.prototype.toISOString - The returned string is the UTC time zone(0)", + + test: function testcase() { + var dateStr = (new Date()).toISOString(); + return dateStr[dateStr.length - 1] === "Z"; + }, + + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-6.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-6.js new file mode 100644 index 0000000000..90ce8d0c6f --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-6.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: "15.9.5.43-0-6", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-6.js", + + description: "Date.prototype.toISOString - TypeError is thrown when this is any other objects instead of Date object", + + test: function testcase() { + + try { + Date.prototype.toISOString.call([]); + return false; + } catch (ex) { + return ex instanceof TypeError; + } + }, + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-7.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-7.js new file mode 100644 index 0000000000..0d5346d68c --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-7.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: "15.9.5.43-0-7", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-7.js", + + description: "Date.prototype.toISOString - TypeError is thrown when this is any primitive values", + + test: function testcase() { + + try { + Date.prototype.toISOString.call(15); + return false; + } catch (ex) { + return ex instanceof TypeError; + } + }, + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); \ No newline at end of file diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-8.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-8.js new file mode 100644 index 0000000000..4c45f6a7af --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-8.js @@ -0,0 +1,49 @@ +/// 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: "15.9.5.43-0-8", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-8.js", + + description: "Date.prototype.toISOString - RangeError is thrown when value of date is Date(1970, 0, -99999999, 0, 0, 0, -1), the time zone is UTC(0)", + + test: function testcase() { + var timeZoneMinutes = new Date().getTimezoneOffset() * (-1); + var date, dateStr; + try { + if (timeZoneMinutes > 0) { + date = new Date(1970, 0, -99999999, 0, 0, 0, -1); + } else { + date = new Date(1970, 0, -99999999, 0, 0 + timeZoneMinutes - 60, 0, -1); + } + + dateStr = date.toISOString(); + + return false; + } catch (e) { + return e instanceof RangeError; + } + }, + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-9.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-9.js new file mode 100644 index 0000000000..a090c9dbde --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-9.js @@ -0,0 +1,53 @@ +/// 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: "15.9.5.43-0-9", + + path: "TestCases/chapter15/15.9/15.9.5/15.9.5.43/15.9.5.43-0-9.js", + + description: "Date.prototype.toISOString - RangeError is not thrown when value of date is Date(1970, 0, -99999999, 0, 0, 0, 0), the time zone is UTC(0)", + + test: function testcase() { + var timeZoneMinutes = new Date().getTimezoneOffset() * (-1); + var date, dateStr; + + if (timeZoneMinutes > 0) { + date = new Date(1970, 0, -99999999, 0, 0, 0, 0); + + try { + date.toISOString(); + return false; + } catch (e) { + return e instanceof RangeError; + } + } else { + date = new Date(1970, 0, -99999999, 0, 0 + timeZoneMinutes + 60, 0, 0); + + dateStr = date.toISOString(); + + return dateStr[dateStr.length - 1] === "Z"; + } + }, + precondition: function prereq() { + return fnExists(Date.prototype.toISOString); + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.44/15.9.5.44-0-1.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.44/15.9.5.44-0-1.js new file mode 100644 index 0000000000..f5c75fa7d9 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.44/15.9.5.44-0-1.js @@ -0,0 +1,35 @@ +/// 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: "15.9.5.44-0-1", + +path: "TestCases/chapter15/15.9/15.9.5/15.9.5.44/15.9.5.44-0-1.js", + +description: "Date.prototype.toJSON must exist as a function", + +test: function testcase() { + var f = Date.prototype.toJSON; + if (typeof(f) === "function") { + return true; + } + } +}); diff --git a/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.44/15.9.5.44-0-2.js b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.44/15.9.5.44-0-2.js new file mode 100644 index 0000000000..eebb1a4836 --- /dev/null +++ b/test/suite/ietestcenter/chapter15/15.9/15.9.5/15.9.5.44/15.9.5.44-0-2.js @@ -0,0 +1,38 @@ +/// 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: "15.9.5.44-0-2", + +path: "TestCases/chapter15/15.9/15.9.5/15.9.5.44/15.9.5.44-0-2.js", + +description: "Date.prototype.toJSON must exist as a function taking 1 parameter", + +test: function testcase() { + if (Date.prototype.toJSON.length === 1) { + return true; + } + }, + +precondition: function prereq() { + return fnExists(Date.prototype.toJSON); + } +});