From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../tests/test262/ch10/10.1/10.1.1/10.1.1-1-s.js | 18 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-10-s.js | 18 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-11-s.js | 23 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-12-s.js | 17 ++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-13-s.js | 17 ++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-14-s.js | 22 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-15-s.js | 26 +++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-16-s.js | 24 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-17-s.js | 30 ++++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-18-s.js | 31 ++++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-19-s.js | 25 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-2-s.js | 23 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-20-s.js | 21 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-21-s.js | 21 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-22-s.js | 24 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-23-s.js | 20 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-24-s.js | 20 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-25-s.js | 29 +++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-26-s.js | 32 ++++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-27-s.js | 24 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-28-s.js | 27 +++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-29-s.js | 19 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-2gs.js | 16 ++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-3-s.js | 19 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-30-s.js | 22 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-31-s.js | 18 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-32-s.js | 18 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-4-s.js | 18 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-5-s.js | 23 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-5gs.js | 16 ++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-6-s.js | 19 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-7-s.js | 18 +++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-8-s.js | 23 ++++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-8gs.js | 17 ++++ .../tests/test262/ch10/10.1/10.1.1/10.1.1-9-s.js | 18 +++++ js/src/tests/test262/ch10/10.1/10.1.1/browser.js | 0 js/src/tests/test262/ch10/10.1/10.1.1/shell.js | 0 js/src/tests/test262/ch10/10.1/S10.1.1_A1_T1.js | 18 +++++ js/src/tests/test262/ch10/10.1/S10.1.1_A1_T2.js | 28 +++++++ js/src/tests/test262/ch10/10.1/S10.1.1_A1_T3.js | 16 ++++ js/src/tests/test262/ch10/10.1/S10.1.1_A2_T1.js | 20 +++++ js/src/tests/test262/ch10/10.1/S10.1.6_A1_T1.js | 20 +++++ js/src/tests/test262/ch10/10.1/S10.1.6_A1_T2.js | 33 ++++++++ js/src/tests/test262/ch10/10.1/S10.1.6_A1_T3.js | 20 +++++ js/src/tests/test262/ch10/10.1/S10.1.7_A1_T1.js | 15 ++++ js/src/tests/test262/ch10/10.1/browser.js | 0 js/src/tests/test262/ch10/10.1/shell.js | 0 .../10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-16-s.js | 23 ++++++ .../10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-18-s.js | 22 ++++++ .../10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-22-s.js | 24 ++++++ .../10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-27-s.js | 24 ++++++ .../10.2/10.2.1/10.2.1.1/10.2.1.1.3/browser.js | 0 .../ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/shell.js | 0 .../test262/ch10/10.2/10.2.1/10.2.1.1/browser.js | 0 .../test262/ch10/10.2/10.2.1/10.2.1.1/shell.js | 0 .../tests/test262/ch10/10.2/10.2.1/S10.2.1_A1.js | 29 +++++++ .../tests/test262/ch10/10.2/10.2.1/S10.2.1_A2.js | 37 +++++++++ .../tests/test262/ch10/10.2/10.2.1/S10.2.1_A3.js | 21 +++++ .../test262/ch10/10.2/10.2.1/S10.2.1_A4_T1.js | 49 ++++++++++++ .../test262/ch10/10.2/10.2.1/S10.2.1_A4_T2.js | 41 ++++++++++ .../test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T1.js | 35 +++++++++ .../test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T2.js | 35 +++++++++ .../test262/ch10/10.2/10.2.1/S10.2.1_A5.2_T1.js | 34 ++++++++ js/src/tests/test262/ch10/10.2/10.2.1/browser.js | 0 js/src/tests/test262/ch10/10.2/10.2.1/shell.js | 0 .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T1.js | 26 +++++++ .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T2.js | 25 ++++++ .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T3.js | 28 +++++++ .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T4.js | 27 +++++++ .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T5.js | 31 ++++++++ .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T6.js | 30 ++++++++ .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T7.js | 32 ++++++++ .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T8.js | 32 ++++++++ .../test262/ch10/10.2/10.2.2/S10.2.2_A1_T9.js | 27 +++++++ js/src/tests/test262/ch10/10.2/10.2.2/browser.js | 0 js/src/tests/test262/ch10/10.2/10.2.2/shell.js | 0 .../test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T1.js | 26 +++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T2.js | 56 ++++++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T3.js | 87 +++++++++++++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T4.js | 16 ++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T1.js | 30 ++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T2.js | 60 +++++++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T3.js | 90 ++++++++++++++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T4.js | 20 +++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T1.js | 30 ++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T2.js | 60 +++++++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T3.js | 90 ++++++++++++++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T4.js | 20 +++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T1.js | 21 +++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T2.js | 33 ++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T3.js | 45 +++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T4.js | 17 ++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T1.js | 25 ++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T2.js | 37 +++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T3.js | 49 ++++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T4.js | 21 +++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T1.js | 24 ++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T2.js | 36 +++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T3.js | 48 ++++++++++++ .../test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T4.js | 20 +++++ js/src/tests/test262/ch10/10.2/10.2.3/browser.js | 0 js/src/tests/test262/ch10/10.2/10.2.3/shell.js | 0 js/src/tests/test262/ch10/10.2/browser.js | 0 js/src/tests/test262/ch10/10.2/shell.js | 0 .../test262/ch10/10.4/10.4.1/S10.4.1_A1_T1.js | 22 ++++++ .../test262/ch10/10.4/10.4.1/S10.4.1_A1_T2.js | 22 ++++++ js/src/tests/test262/ch10/10.4/10.4.1/browser.js | 0 js/src/tests/test262/ch10/10.4/10.4.1/shell.js | 0 .../tests/test262/ch10/10.4/10.4.2/10.4.2-1-1.js | 26 +++++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2-1-2.js | 31 ++++++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2-1-3.js | 34 ++++++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2-1-4.js | 29 +++++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2-1-5.js | 27 +++++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2-2-c-1.js | 20 +++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2-2-s.js | 18 +++++ .../test262/ch10/10.4/10.4.2/10.4.2-3-c-1-s.js | 21 +++++ .../test262/ch10/10.4/10.4.2/10.4.2-3-c-2-s.js | 22 ++++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2.1-1gs.js | 17 ++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2.1-2-s.js | 19 +++++ .../tests/test262/ch10/10.4/10.4.2/10.4.2.1-4-s.js | 18 +++++ .../tests/test262/ch10/10.4/10.4.2/S10.4.2.1_A1.js | 17 ++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T1.js | 28 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T10.js | 28 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T11.js | 29 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T2.js | 29 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T3.js | 28 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T4.js | 29 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T5.js | 29 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T6.js | 29 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T7.js | 29 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T8.js | 29 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T9.js | 29 +++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T1.js | 31 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T10.js | 32 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T11.js | 34 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T2.js | 32 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T3.js | 32 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T4.js | 33 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T5.js | 34 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T6.js | 34 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T7.js | 35 +++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T8.js | 34 ++++++++ .../test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T9.js | 34 ++++++++ js/src/tests/test262/ch10/10.4/10.4.2/browser.js | 0 js/src/tests/test262/ch10/10.4/10.4.2/shell.js | 0 .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-1-s.js | 29 +++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-10-s.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-100-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-100gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-101-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-101gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-102-s.js | 23 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-102gs.js | 20 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-103.js | 18 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-104.js | 20 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-105.js | 21 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-106.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-10gs.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-11-s.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-11gs.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-12-s.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-12gs.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-13-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-13gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-14-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-14gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-15-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-15gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-16-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-16gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-17-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-17gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-18gs.js | 14 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-19-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-19gs.js | 16 ++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-2-s.js | 29 +++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-20-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-20gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-21-s.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-21gs.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-22-s.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-22gs.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-23-s.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-23gs.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-24-s.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-24gs.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-25-s.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-25gs.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-26-s.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-26gs.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-27-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-27gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-28-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-28gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-29-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-29gs.js | 20 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-3-s.js | 27 +++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-30-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-30gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-31-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-31gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-32-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-32gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-33-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-33gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-34-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-34gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-35-s.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-35gs.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-36-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-36gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-37-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-37gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-38-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-38gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-39-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-39gs.js | 21 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-4-s.js | 29 +++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-40-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-40gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-41-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-41gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-42-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-42gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-43-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-43gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-44-s.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-44gs.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-45-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-45gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-46-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-46gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-47-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-47gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-48-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-48gs.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-49-s.js | 22 ++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-49gs.js | 21 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-5-s.js | 32 ++++++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-50-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-50gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-51-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-51gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-52-s.js | 21 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-52gs.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-53-s.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-53gs.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-54-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-54gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-55-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-55gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-56-s.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-56gs.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-57-s.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-57gs.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-58-s.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-58gs.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-59-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-59gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-60-s.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-60gs.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-61-s.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-61gs.js | 18 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-62-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-62gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-63-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-63gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-64-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-64gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-65-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-65gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-66-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-66gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-67-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-67gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-68-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-68gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-69-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-69gs.js | 16 ++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-7-s.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-70-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-70gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-71-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-71gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-72-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-72gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-73-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-73gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-74-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-74gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-75-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-75gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-76-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-76gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-77-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-77gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-78-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-78gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-79-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-79gs.js | 16 ++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-7gs.js | 18 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-8-s.js | 20 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-80-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-80gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-81-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-81gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-82-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-82gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-83-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-83gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-84-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-84gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-85-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-85gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-86-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-86gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-87-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-87gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-88-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-88gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-89-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-89gs.js | 15 ++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-8gs.js | 18 +++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-9-s.js | 19 +++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-90-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-90gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-91-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-91gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-92-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-92gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-93-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-93gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-94-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-94gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-95-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-95gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-96-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-96gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-97-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-97gs.js | 15 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-98-s.js | 17 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-98gs.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-99-s.js | 16 ++++ .../test262/ch10/10.4/10.4.3/10.4.3-1-99gs.js | 15 ++++ .../tests/test262/ch10/10.4/10.4.3/10.4.3-1-9gs.js | 18 +++++ .../tests/test262/ch10/10.4/10.4.3/S10.4.3_A1.js | 16 ++++ js/src/tests/test262/ch10/10.4/10.4.3/browser.js | 0 js/src/tests/test262/ch10/10.4/10.4.3/shell.js | 0 js/src/tests/test262/ch10/10.4/S10.4A1.1_T2.js | 33 ++++++++ js/src/tests/test262/ch10/10.4/S10.4_A1.1_T1.js | 31 ++++++++ js/src/tests/test262/ch10/10.4/browser.js | 0 js/src/tests/test262/ch10/10.4/shell.js | 0 js/src/tests/test262/ch10/10.5/10.5-1-s.js | 24 ++++++ js/src/tests/test262/ch10/10.5/10.5-1gs.js | 20 +++++ js/src/tests/test262/ch10/10.5/10.5-7-b-1-s.js | 23 ++++++ js/src/tests/test262/ch10/10.5/10.5-7-b-2-s.js | 23 ++++++ js/src/tests/test262/ch10/10.5/10.5-7-b-3-s.js | 23 ++++++ js/src/tests/test262/ch10/10.5/10.5-7-b-4-s.js | 24 ++++++ js/src/tests/test262/ch10/10.5/browser.js | 0 js/src/tests/test262/ch10/10.5/shell.js | 0 js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1-s.js | 22 ++++++ js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1.js | 21 +++++ js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2-s.js | 23 ++++++ js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2.js | 22 ++++++ js/src/tests/test262/ch10/10.6/10.6-11-b-1.js | 54 +++++++++++++ js/src/tests/test262/ch10/10.6/10.6-12-1.js | 21 +++++ js/src/tests/test262/ch10/10.6/10.6-12-2.js | 22 ++++++ js/src/tests/test262/ch10/10.6/10.6-13-1.js | 21 +++++ js/src/tests/test262/ch10/10.6/10.6-13-a-1.js | 45 +++++++++++ js/src/tests/test262/ch10/10.6/10.6-13-a-2.js | 35 +++++++++ js/src/tests/test262/ch10/10.6/10.6-13-a-3.js | 36 +++++++++ js/src/tests/test262/ch10/10.6/10.6-13-b-1-s.js | 24 ++++++ js/src/tests/test262/ch10/10.6/10.6-13-b-2-s.js | 19 +++++ js/src/tests/test262/ch10/10.6/10.6-13-b-3-s.js | 26 +++++++ js/src/tests/test262/ch10/10.6/10.6-13-c-1-s.js | 24 ++++++ js/src/tests/test262/ch10/10.6/10.6-13-c-2-s.js | 19 +++++ js/src/tests/test262/ch10/10.6/10.6-13-c-3-s.js | 24 ++++++ js/src/tests/test262/ch10/10.6/10.6-14-1-s.js | 20 +++++ js/src/tests/test262/ch10/10.6/10.6-14-b-1-s.js | 28 +++++++ js/src/tests/test262/ch10/10.6/10.6-14-b-4-s.js | 27 +++++++ js/src/tests/test262/ch10/10.6/10.6-14-c-1-s.js | 28 +++++++ js/src/tests/test262/ch10/10.6/10.6-14-c-4-s.js | 27 +++++++ js/src/tests/test262/ch10/10.6/10.6-1gs.js | 17 ++++ js/src/tests/test262/ch10/10.6/10.6-2gs.js | 19 +++++ js/src/tests/test262/ch10/10.6/10.6-5-1.js | 16 ++++ js/src/tests/test262/ch10/10.6/10.6-6-1.js | 17 ++++ js/src/tests/test262/ch10/10.6/10.6-6-2.js | 20 +++++ js/src/tests/test262/ch10/10.6/10.6-6-3.js | 16 ++++ js/src/tests/test262/ch10/10.6/10.6-6-4.js | 16 ++++ js/src/tests/test262/ch10/10.6/10.6-7-1.js | 53 +++++++++++++ js/src/tests/test262/ch10/10.6/S10.6_A1.js | 35 +++++++++ js/src/tests/test262/ch10/10.6/S10.6_A2.js | 36 +++++++++ js/src/tests/test262/ch10/10.6/S10.6_A3_T1.js | 35 +++++++++ js/src/tests/test262/ch10/10.6/S10.6_A3_T2.js | 49 ++++++++++++ js/src/tests/test262/ch10/10.6/S10.6_A3_T3.js | 40 ++++++++++ js/src/tests/test262/ch10/10.6/S10.6_A3_T4.js | 42 ++++++++++ js/src/tests/test262/ch10/10.6/S10.6_A4.js | 38 +++++++++ js/src/tests/test262/ch10/10.6/S10.6_A5_T1.js | 35 +++++++++ js/src/tests/test262/ch10/10.6/S10.6_A5_T2.js | 49 ++++++++++++ js/src/tests/test262/ch10/10.6/S10.6_A5_T3.js | 39 ++++++++++ js/src/tests/test262/ch10/10.6/S10.6_A5_T4.js | 41 ++++++++++ js/src/tests/test262/ch10/10.6/S10.6_A6.js | 67 ++++++++++++++++ js/src/tests/test262/ch10/10.6/S10.6_A7.js | 20 +++++ js/src/tests/test262/ch10/10.6/browser.js | 0 js/src/tests/test262/ch10/10.6/shell.js | 0 js/src/tests/test262/ch10/browser.js | 0 js/src/tests/test262/ch10/shell.js | 0 407 files changed, 8684 insertions(+) create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-1-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-10-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-11-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-12-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-13-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-14-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-15-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-16-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-17-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-18-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-19-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-2-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-20-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-21-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-22-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-23-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-24-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-25-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-26-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-27-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-28-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-29-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-2gs.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-3-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-30-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-31-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-32-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-4-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-5-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-5gs.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-6-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-7-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-8-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-8gs.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-9-s.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/browser.js create mode 100644 js/src/tests/test262/ch10/10.1/10.1.1/shell.js create mode 100644 js/src/tests/test262/ch10/10.1/S10.1.1_A1_T1.js create mode 100644 js/src/tests/test262/ch10/10.1/S10.1.1_A1_T2.js create mode 100644 js/src/tests/test262/ch10/10.1/S10.1.1_A1_T3.js create mode 100644 js/src/tests/test262/ch10/10.1/S10.1.1_A2_T1.js create mode 100644 js/src/tests/test262/ch10/10.1/S10.1.6_A1_T1.js create mode 100644 js/src/tests/test262/ch10/10.1/S10.1.6_A1_T2.js create mode 100644 js/src/tests/test262/ch10/10.1/S10.1.6_A1_T3.js create mode 100644 js/src/tests/test262/ch10/10.1/S10.1.7_A1_T1.js create mode 100644 js/src/tests/test262/ch10/10.1/browser.js create mode 100644 js/src/tests/test262/ch10/10.1/shell.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-16-s.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-18-s.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-22-s.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-27-s.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/browser.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/shell.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/browser.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/shell.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A3.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A4_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A4_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.2_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/browser.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.1/shell.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T3.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T4.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T5.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T6.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T7.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T8.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T9.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/browser.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.2/shell.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T3.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T4.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T3.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T4.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T3.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T4.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T3.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T4.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T3.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T4.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T1.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T2.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T3.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T4.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/browser.js create mode 100644 js/src/tests/test262/ch10/10.2/10.2.3/shell.js create mode 100644 js/src/tests/test262/ch10/10.2/browser.js create mode 100644 js/src/tests/test262/ch10/10.2/shell.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.1/S10.4.1_A1_T1.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.1/S10.4.1_A1_T2.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.1/browser.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.1/shell.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-1.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-2.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-3.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-4.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-5.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-2-c-1.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-2-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-3-c-1-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-3-c-2-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-1gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-2-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-4-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2.1_A1.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T1.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T10.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T11.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T2.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T3.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T4.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T5.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T6.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T7.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T8.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T9.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T1.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T10.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T11.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T2.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T3.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T4.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T5.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T6.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T7.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T8.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T9.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/browser.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.2/shell.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-1-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-10-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-100-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-100gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-101-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-101gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-102-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-102gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-103.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-104.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-105.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-106.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-10gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-11-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-11gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-12-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-12gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-13-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-13gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-14-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-14gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-15-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-15gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-16-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-16gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-17-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-17gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-18gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-19-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-19gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-2-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-20-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-20gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-21-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-21gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-22-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-22gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-23-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-23gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-24-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-24gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-25-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-25gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-26-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-26gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-27-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-27gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-28-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-28gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-29-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-29gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-3-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-30-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-30gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-31-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-31gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-32-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-32gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-33-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-33gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-34-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-34gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-35-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-35gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-36-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-36gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-37-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-37gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-38-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-38gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-39-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-39gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-4-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-40-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-40gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-41-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-41gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-42-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-42gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-43-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-43gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-44-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-44gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-45-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-45gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-46-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-46gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-47-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-47gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-48-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-48gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-49-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-49gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-5-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-50-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-50gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-51-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-51gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-52-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-52gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-53-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-53gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-54-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-54gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-55-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-55gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-56-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-56gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-57-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-57gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-58-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-58gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-59-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-59gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-60-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-60gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-61-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-61gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-62-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-62gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-63-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-63gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-64-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-64gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-65-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-65gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-66-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-66gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-67-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-67gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-68-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-68gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-69-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-69gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-7-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-70-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-70gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-71-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-71gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-72-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-72gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-73-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-73gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-74-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-74gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-75-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-75gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-76-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-76gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-77-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-77gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-78-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-78gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-79-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-79gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-7gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-8-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-80-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-80gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-81-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-81gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-82-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-82gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-83-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-83gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-84-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-84gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-85-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-85gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-86-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-86gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-87-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-87gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-88-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-88gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-89-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-89gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-8gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-9-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-90-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-90gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-91-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-91gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-92-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-92gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-93-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-93gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-94-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-94gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-95-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-95gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-96-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-96gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-97-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-97gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-98-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-98gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-99-s.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-99gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-9gs.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/S10.4.3_A1.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/browser.js create mode 100644 js/src/tests/test262/ch10/10.4/10.4.3/shell.js create mode 100644 js/src/tests/test262/ch10/10.4/S10.4A1.1_T2.js create mode 100644 js/src/tests/test262/ch10/10.4/S10.4_A1.1_T1.js create mode 100644 js/src/tests/test262/ch10/10.4/browser.js create mode 100644 js/src/tests/test262/ch10/10.4/shell.js create mode 100644 js/src/tests/test262/ch10/10.5/10.5-1-s.js create mode 100644 js/src/tests/test262/ch10/10.5/10.5-1gs.js create mode 100644 js/src/tests/test262/ch10/10.5/10.5-7-b-1-s.js create mode 100644 js/src/tests/test262/ch10/10.5/10.5-7-b-2-s.js create mode 100644 js/src/tests/test262/ch10/10.5/10.5-7-b-3-s.js create mode 100644 js/src/tests/test262/ch10/10.5/10.5-7-b-4-s.js create mode 100644 js/src/tests/test262/ch10/10.5/browser.js create mode 100644 js/src/tests/test262/ch10/10.5/shell.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-11-b-1.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-12-1.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-12-2.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-1.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-a-1.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-a-2.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-a-3.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-b-1-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-b-2-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-b-3-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-c-1-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-c-2-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-13-c-3-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-14-1-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-14-b-1-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-14-b-4-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-14-c-1-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-14-c-4-s.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-1gs.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-2gs.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-5-1.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-6-1.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-6-2.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-6-3.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-6-4.js create mode 100644 js/src/tests/test262/ch10/10.6/10.6-7-1.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A1.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A2.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A3_T1.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A3_T2.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A3_T3.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A3_T4.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A4.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A5_T1.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A5_T2.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A5_T3.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A5_T4.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A6.js create mode 100644 js/src/tests/test262/ch10/10.6/S10.6_A7.js create mode 100644 js/src/tests/test262/ch10/10.6/browser.js create mode 100644 js/src/tests/test262/ch10/10.6/shell.js create mode 100644 js/src/tests/test262/ch10/browser.js create mode 100644 js/src/tests/test262/ch10/shell.js (limited to 'js/src/tests/test262/ch10') diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-1-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-1-s.js new file mode 100644 index 000000000..a9cf025bc --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-1-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-1-s.js + * @description Strict Mode - Use Strict Directive Prologue is 'use strict'; which contains two space between 'use' and 'strict' + * @noStrict + */ + + +function testcase() { + "use strict"; + var public = 1; + return public === 1; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-10-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-10-s.js new file mode 100644 index 000000000..51aa8ca73 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-10-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-10-s.js + * @description Strict Mode - Use Strict Directive Prologue is ''USE STRICT';' in which all characters are uppercase + * @noStrict + */ + + +function testcase() { + "USE STRICT"; + var public = 1; + return public === 1; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-11-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-11-s.js new file mode 100644 index 000000000..6d7794d97 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-11-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-11-s.js + * @description Strict Mode - Eval code is strict code with a Use Strict Directive at the beginning of the block + * @noStrict + */ + + +function testcase() { + try { + eval("'use strict'; var public = 1; var anotherVariableNotReserveWord = 2;"); + + return false; + } catch (e) { + return e instanceof SyntaxError && typeof public === "undefined" && + typeof anotherVariableNotReserveWord === "undefined"; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-12-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-12-s.js new file mode 100644 index 000000000..09fdffe84 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-12-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-12-s.js + * @description Strict Mode - Eval code is strict eval code with a Use Strict Directive in the middle of the block + * @noStrict + */ + + +function testcase() { + eval("var public = 1; 'use strict'; var anotherVariableNotReserveWord = 2;"); + return public === 1 && anotherVariableNotReserveWord === 2; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-13-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-13-s.js new file mode 100644 index 000000000..0a4ba30ff --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-13-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-13-s.js + * @description Strict Mode - Eval code is strict eval code with a Use Strict Directive at the end of the block + * @noStrict + */ + + +function testcase() { + eval("var public = 1; var anotherVariableNotReserveWord = 2; 'use strict';"); + return public === 1 && anotherVariableNotReserveWord === 2; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-14-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-14-s.js new file mode 100644 index 000000000..dff413366 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-14-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-14-s.js + * @description Strict Mode - The call to eval function is contained in a Strict Mode block + * @noStrict + */ + + +function testcase() { + 'use strict'; + try { + eval("var public = 1;"); + return false; + } catch (e) { + return true; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-15-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-15-s.js new file mode 100644 index 000000000..b7f7664f5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-15-s.js @@ -0,0 +1,26 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-15-s.js + * @description Strict Mode - Function code that is part of a FunctionDeclaration is strict function code if FunctionDeclaration is contained in use strict + * @noStrict + */ + + +function testcase() { + "use strict"; + function fun() { + try { + eval("var public = 1;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } + + return fun(); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-16-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-16-s.js new file mode 100644 index 000000000..35ef8803f --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-16-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-16-s.js + * @description Strict Mode - Function code that is part of a FunctionExpression is strict function code if FunctionExpression is contained in use strict + * @noStrict + */ + + +function testcase() { + "use strict"; + return function () { + try { + eval("var public = 1;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } (); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-17-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-17-s.js new file mode 100644 index 000000000..976e644fe --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-17-s.js @@ -0,0 +1,30 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-17-s.js + * @description Strict Mode - Function code that is part of a Accessor PropertyAssignment is in Strict Mode if Accessor PropertyAssignment is contained in use strict(getter) + * @noStrict + */ + + +function testcase() { + "use strict"; + try { + var obj = {}; + Object.defineProperty(obj, "accProperty", { + get: function () { + eval("public = 1;"); + return 11; + } + }); + + var temp = obj.accProperty === 11; + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-18-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-18-s.js new file mode 100644 index 000000000..b384ebfe5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-18-s.js @@ -0,0 +1,31 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-18-s.js + * @description Strict Mode - Function code that is part of a Accessor PropertyAssignment is in Strict Mode if Accessor PropertyAssignment is contained in use strict(setter) + * @noStrict + */ + + +function testcase() { + "use strict"; + try { + var obj = {}; + var data = "data"; + Object.defineProperty(obj, "accProperty", { + set: function (value) { + eval("var public = 1;"); + data = value; + } + }); + + obj.accProperty = "overrideData"; + return false; + } catch (e) { + return e instanceof SyntaxError && data === "data"; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-19-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-19-s.js new file mode 100644 index 000000000..6643ec7f1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-19-s.js @@ -0,0 +1,25 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-19-s.js + * @description Strict Mode - Function code of a FunctionDeclaration contains Use Strict Directive which appears at the start of the block + * @noStrict + */ + + +function testcase() { + function fun() { + "use strict"; + try { + eval("var public = 1;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } + return fun(); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-2-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-2-s.js new file mode 100644 index 000000000..42e6bce78 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-2-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-2-s.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict'' which lost the last character ';' + * @noStrict + */ + + +function testcase() { + "use strict" + try { + eval("var public = 1;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-20-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-20-s.js new file mode 100644 index 000000000..cc30e88e6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-20-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-20-s.js + * @description Strict Mode - Function code of a FunctionDeclaration contains Use Strict Directive which appears in the middle of the block + * @noStrict + */ + + +function testcase() { + function fun() { + eval("var public = 1;"); + "use strict"; + return public === 1; + } + return fun(); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-21-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-21-s.js new file mode 100644 index 000000000..6c0245461 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-21-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-21-s.js + * @description Strict Mode - Function code of a FunctionDeclaration contains Use Strict Directive which appears at the end of the block + * @noStrict + */ + + +function testcase() { + function fun() { + eval("var public = 1;"); + return public === 1; + "use strict"; + } + return fun(); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-22-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-22-s.js new file mode 100644 index 000000000..875ad9780 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-22-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-22-s.js + * @description Strict Mode - Function code of a FunctionExpression contains Use Strict Directive which appears at the start of the block + * @noStrict + */ + + +function testcase() { + return function () { + "use strict"; + try { + eval("var public = 1;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } (); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-23-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-23-s.js new file mode 100644 index 000000000..680e928cd --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-23-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-23-s.js + * @description Strict Mode - Function code of a FunctionExpression contains Use Strict Directive which appears in the middle of the block + * @noStrict + */ + + +function testcase() { + return function () { + eval("var public = 1;"); + return public === 1; + "use strict"; + } (); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-24-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-24-s.js new file mode 100644 index 000000000..ef67dbe59 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-24-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-24-s.js + * @description Strict Mode - Function code of a FunctionExpression contains Use Strict Directive which appears at the end of the block + * @noStrict + */ + + +function testcase() { + return function () { + eval("var public = 1;"); + "use strict"; + return public === 1; + } (); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-25-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-25-s.js new file mode 100644 index 000000000..206518f72 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-25-s.js @@ -0,0 +1,29 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-25-s.js + * @description Strict Mode - Function code of Accessor PropertyAssignment contains Use Strict Directive which appears at the start of the block(getter) + * @noStrict + */ + + +function testcase() { + try { + var obj = {}; + Object.defineProperty(obj, "accProperty", { + get: function () { + "use strict"; + eval("var public = 1;"); + return 11; + } + }); + var temp = obj.accProperty === 11; + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-26-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-26-s.js new file mode 100644 index 000000000..9da18136b --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-26-s.js @@ -0,0 +1,32 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-26-s.js + * @description Strict Mode - Function code of Accessor PropertyAssignment contains Use Strict Directive which appears at the start of the block(setter) + * @noStrict + */ + + +function testcase() { + try { + var obj = {}; + var data = "data"; + Object.defineProperty(obj, "accProperty", { + set: function (value) { + "use strict"; + eval("var public = 1;"); + data = value; + } + }); + + obj.accProperty = "overrideData"; + + return false; + } catch (e) { + return e instanceof SyntaxError && data === "data"; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-27-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-27-s.js new file mode 100644 index 000000000..94b01f5af --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-27-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-27-s.js + * @description Strict Mode - Function code of Accessor PropertyAssignment contains Use Strict Directive which appears in the middle of the block(getter) + * @noStrict + */ + + +function testcase() { + var obj = {}; + Object.defineProperty(obj, "accProperty", { + get: function () { + eval("public = 1;"); + "use strict"; + return 11; + } + }); + return obj.accProperty === 11 && public === 1; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-28-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-28-s.js new file mode 100644 index 000000000..f3ebe7d11 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-28-s.js @@ -0,0 +1,27 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-28-s.js + * @description Strict Mode - Function code of Accessor PropertyAssignment contains Use Strict Directive which appears at the end of the block(setter) + * @noStrict + */ + + +function testcase() { + var obj = {}; + var data; + + Object.defineProperty(obj, "accProperty", { + set: function (value) { + var _10_1_1_28_s = {a:1, a:2}; + data = value; + "use strict"; + } + }); + obj.accProperty = "overrideData"; + return data==="overrideData"; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-29-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-29-s.js new file mode 100644 index 000000000..9745777b1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-29-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-29-s.js + * @description Strict Mode - The built-in Function constructor is contained in use strict code + * @noStrict + */ + + +function testcase() { + "use strict"; + var funObj = new Function("a", "eval('public = 1;');"); + funObj(); + return true; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-2gs.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-2gs.js new file mode 100644 index 000000000..dd30cb215 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-2gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. + +/** + * @path ch10/10.1/10.1.1/10.1.1-2gs.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict'' which lost the last character ';' + * @noStrict + * @negative ^((?!NotEarlyError).)*$ + */ + +"use strict" +throw NotEarlyError; +var public = 1; diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-3-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-3-s.js new file mode 100644 index 000000000..8c4e4fb5d --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-3-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-3-s.js + * @description Strict Mode - Use Strict Directive Prologue is '' use strict';' which the first character is space + * @noStrict + */ + + +function testcase() { + " use strict"; + var public = 1; + + return public === 1; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-30-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-30-s.js new file mode 100644 index 000000000..79c68e7c2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-30-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-30-s.js + * @description Strict Mode - Function code of built-in Function constructor contains Use Strict Directive which appears at the start of the block + * @noStrict + */ + + +function testcase() { + try { + var funObj = new Function("a", "'use strict'; eval('public = 1;');"); + funObj(); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-31-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-31-s.js new file mode 100644 index 000000000..21c84976b --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-31-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-31-s.js + * @description Strict Mode - Function code of built-in Function constructor contains Use Strict Directive which appears in the middle of the block + * @noStrict + */ + + +function testcase() { + var funObj = new Function("a", "eval('public = 1;'); 'use strict'; anotherVariable = 2;"); + funObj(); + return public === 1 && anotherVariable === 2; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-32-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-32-s.js new file mode 100644 index 000000000..a7cbc1d8c --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-32-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-32-s.js + * @description Strict Mode - Function code of built-in Function constructor contains Use Strict Directive which appears at the end of the block + * @noStrict + */ + + +function testcase() { + var funObj = new Function("a", "eval('public = 1;'); anotherVariable = 2; 'use strict';"); + funObj(); + return public === 1 && anotherVariable === 2; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-4-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-4-s.js new file mode 100644 index 000000000..3d7db1862 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-4-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-4-s.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict ';' which the last character is space + * @noStrict + */ + + +function testcase() { + "use strict "; + var public = 1; + return public === 1; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-5-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-5-s.js new file mode 100644 index 000000000..6a9f07af4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-5-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-5-s.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict';' which appears at the beginning of the block + * @noStrict + */ + + +function testcase() { + "use strict"; + try { + eval("var public = 1;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-5gs.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-5gs.js new file mode 100644 index 000000000..63698e5e6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-5gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. + +/** + * @path ch10/10.1/10.1.1/10.1.1-5gs.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict';' which appears at the start of the code + * @noStrict + * @negative ^((?!NotEarlyError).)*$ + */ + +"use strict"; +throw NotEarlyError; +var public = 1; diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-6-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-6-s.js new file mode 100644 index 000000000..6434c2515 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-6-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-6-s.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict';' which appears in the middle of the block + * @noStrict + */ + + +function testcase() { + var interface = 2; + "use strict"; + var public = 1; + return public === 1 && interface === 2; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-7-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-7-s.js new file mode 100644 index 000000000..42b5e1ee2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-7-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-7-s.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict';' which appears at the end of the block + * @noStrict + */ + + +function testcase() { + var public = 1; + return public === 1; + "use strict"; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-8-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-8-s.js new file mode 100644 index 000000000..3fc4df80e --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-8-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-8-s.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict';' which appears twice in the directive prologue + * @noStrict + */ + + +function testcase() { + "use strict"; + "use strict"; + try { + eval("var public = 1;"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-8gs.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-8gs.js new file mode 100644 index 000000000..88476ac4a --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-8gs.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. + +/** + * @path ch10/10.1/10.1.1/10.1.1-8gs.js + * @description Strict Mode - Use Strict Directive Prologue is ''use strict';' which appears twice in the code + * @noStrict + * @negative ^((?!NotEarlyError).)*$ + */ + +"use strict"; +"use strict"; +throw NotEarlyError; +var public = 1; diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-9-s.js b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-9-s.js new file mode 100644 index 000000000..b294ef146 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/10.1.1/10.1.1-9-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.1/10.1.1/10.1.1-9-s.js + * @description Strict Mode - Use Strict Directive Prologue is ''Use strict';' in which the first character is uppercase + * @noStrict + */ + + +function testcase() { + "Use strict"; + var public = 1; + return public === 1; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/browser.js b/js/src/tests/test262/ch10/10.1/10.1.1/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.1/10.1.1/shell.js b/js/src/tests/test262/ch10/10.1/10.1.1/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T1.js b/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T1.js new file mode 100644 index 000000000..4085aa5ac --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T1.js @@ -0,0 +1,18 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Program functions are defined in source text by a FunctionDeclaration or created dynamically either + * by using a FunctionExpression or by using the built-in Function object as a constructor + * + * @path ch10/10.1/S10.1.1_A1_T1.js + * @description Defining function by a FunctionDeclaration + */ + +//CHECK#1 +function f1(){ + return 1; +} +if(typeof(f1)!=="function") + $ERROR('#1: typeof(f1)!=="function"'); + diff --git a/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T2.js b/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T2.js new file mode 100644 index 000000000..d453d6e59 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T2.js @@ -0,0 +1,28 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Program functions are defined in source text by a FunctionDeclaration or created dynamically either + * by using a FunctionExpression or by using the built-in Function object as a constructor + * + * @path ch10/10.1/S10.1.1_A1_T2.js + * @description Creating function dynamically by using a FunctionExpression + */ + +//CHECK#1 +var x=function f1(){return 1;}(); +if(x!==1) + $ERROR('#1: Create function dynamically either by using a FunctionExpression'); + +//CHECK#2 +var y=function (){return 2;}(); +if(y!==2){ + $ERROR('#2: Create an anonymous function dynamically either by using a FunctionExpression'); +} + +//CHECK#2 +var z = (function(){return 3;})(); +if(z!==3){ + $ERROR('#3: Create an anonymous function dynamically either by using a FunctionExpression wrapped in a group operator'); +} + diff --git a/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T3.js b/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T3.js new file mode 100644 index 000000000..5e49dcd59 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/S10.1.1_A1_T3.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Program functions are defined in source text by a FunctionDeclaration or created dynamically either + * by using a FunctionExpression or by using the built-in Function object as a constructor + * + * @path ch10/10.1/S10.1.1_A1_T3.js + * @description Creating function dynamically by using the built-in Function object as a constructor + */ + +//CHECK#1 +var x=new function f1(){return 1;}; +if(typeof(x.constructor)!=="function") + $ERROR('#1: typeof(x.constructor)!=="function"'); + diff --git a/js/src/tests/test262/ch10/10.1/S10.1.1_A2_T1.js b/js/src/tests/test262/ch10/10.1/S10.1.1_A2_T1.js new file mode 100644 index 000000000..aa5701155 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/S10.1.1_A2_T1.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * There are two types of Function objects. Internal functions + * are built-in objects of the language, such as parseInt and Math.exp + * + * @path ch10/10.1/S10.1.1_A2_T1.js + * @description Checking types of parseInt and Math.exp + */ + +//CHECK#1 +if(typeof(Math.exp)!=="function") + $ERROR('#1: typeof(Math.exp(10))!=="function" '+typeof(Math.exp())); + +//CHECK#2 +if(typeof(parseInt)!=="function") + $ERROR('#2: typeof(parseInt())!=="function" '+typeof(parseInt())); + + diff --git a/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T1.js b/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T1.js new file mode 100644 index 000000000..5dee9bf43 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T1.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The activation object is initialised with a property with name arguments and attributes {DontDelete} + * + * @path ch10/10.1/S10.1.6_A1_T1.js + * @description Checking if deleting function parameter is possible + * @noStrict + */ + +//CHECK#1 +function f1(a){ + delete a; + return a; +} +if (f1(1) !== 1) + $ERROR('#1: Function parameter was deleted'); + + diff --git a/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T2.js b/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T2.js new file mode 100644 index 000000000..8747b2f11 --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T2.js @@ -0,0 +1,33 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The activation object is initialised with a property with name arguments and attributes {DontDelete} + * + * @path ch10/10.1/S10.1.6_A1_T2.js + * @description Checking funtion which returns property "arguments" + */ + +var ARG_STRING = "value of the argument property"; + +function f1() { + this.constructor.prototype.arguments = ARG_STRING; + return arguments; +} + +//CHECK#1 +if ((new f1(1,2,3,4,5)).length !== 5) + $ERROR('#1: (new f1(1,2,3,4,5)).length===5, where f1 returns "arguments" that is set to "'+ ARG_STRING + '"'); + +//CHECK#2 +if ((new f1(1,2,3,4,5))[3] !== 4) + $ERROR('#2: (new f1(1,2,3,4,5))[3]===4, where f1 returns "arguments" that is set to "'+ ARG_STRING + '"'); + +//CHECK#3 +var x = new f1(1,2,3,4,5); +if (delete x[3] !== true) + $ERROR('#3.1: Function parameters have attribute {DontDelete}'); + +if (x[3] === 4) + $ERROR('#3.2: Function parameters have attribute {DontDelete}'); + diff --git a/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T3.js b/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T3.js new file mode 100644 index 000000000..95e1bf2ef --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/S10.1.6_A1_T3.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The activation object is initialised with a property with name arguments and attributes {DontDelete} + * + * @path ch10/10.1/S10.1.6_A1_T3.js + * @description Checking function which returns "this" + * @noStrict + */ + +function f1() { + if (delete arguments) { + $ERROR("#1: Function parameters have attribute {DontDelete}" + arguments); + } + return arguments; +} + +f1(); + diff --git a/js/src/tests/test262/ch10/10.1/S10.1.7_A1_T1.js b/js/src/tests/test262/ch10/10.1/S10.1.7_A1_T1.js new file mode 100644 index 000000000..f7e7a0b0c --- /dev/null +++ b/js/src/tests/test262/ch10/10.1/S10.1.7_A1_T1.js @@ -0,0 +1,15 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The this value associated with an executioncontext is immutable + * + * @path ch10/10.1/S10.1.7_A1_T1.js + * @description Checking if deleting "this" fails + */ + +//CHECK#1 +if (delete this !== true) + $ERROR('#1: The this value associated with an executioncontext is immutable. Actual: this was deleted'); + + diff --git a/js/src/tests/test262/ch10/10.1/browser.js b/js/src/tests/test262/ch10/10.1/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.1/shell.js b/js/src/tests/test262/ch10/10.1/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-16-s.js b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-16-s.js new file mode 100644 index 000000000..bfc1f5ece --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-16-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-16-s.js + * @description Strict Mode - TypeError is thrown when changing the value of a Value Property of the Global Object under strict mode (NaN) + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + try { + NaN = 12; + return false; + } catch (e) { + return e instanceof TypeError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-18-s.js b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-18-s.js new file mode 100644 index 000000000..e60836978 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-18-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-18-s.js + * @description Strict Mode - TypeError is thrown when changing the value of a Value Property of the Global Object under strict mode (undefined) + * @onlyStrict + */ + + +function testcase() { + "use strict"; + try { + undefined = 12; + return false; + } catch (e) { + return e instanceof TypeError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-22-s.js b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-22-s.js new file mode 100644 index 000000000..9303b79b5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-22-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-22-s.js + * @description Strict Mode - TypeError is not thrown when changing the value of the Constructor Properties of the Global Object under strict mode (Object) + * @onlyStrict + */ + + +function testcase() { + "use strict"; + var objBak = Object; + + try { + Object = 12; + return true; + } finally { + Object = objBak; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-27-s.js b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-27-s.js new file mode 100644 index 000000000..9ecdf64a5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-27-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/10.2.1.1.3-4-27-s.js + * @description Strict Mode - TypeError is not thrown when changing the value of the Constructor Properties of the Global Object under strict mode (Number) + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + var numBak = Number; + try { + Number = 12; + return true; + } finally { + Number = numBak; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/browser.js b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/shell.js b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/10.2.1.1.3/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/browser.js b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/shell.js b/js/src/tests/test262/ch10/10.2/10.2.1/10.2.1.1/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A1.js b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A1.js new file mode 100644 index 000000000..6206633b2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A1.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * If the caller supplies fewer parameter values than there are + * formal parameters, the extra formal parameters have value undefined + * + * @path ch10/10.2/10.2.1/S10.2.1_A1.js + * @description Calling function excluding a few parameters + */ + +//CHECK#1 +function f1(a, b){ + return (b === undefined); +} +if(!(f1(1, 2) === false)){ + $ERROR('#1: f1(1, 2) === false'); +} else if(!(f1(1) === true)){ + $ERROR('#1: f1(1) === true'); +} + +//CHECK#2 +function f2(a, b, c){ + return (b === undefined) && (c === undefined); +} +if(!(f2(1) === true)){ + $ERROR('#2: f2(1, 2) === true'); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A2.js b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A2.js new file mode 100644 index 000000000..e622c5462 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A2.js @@ -0,0 +1,37 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * If two or more formal parameters share the same name, hence + * the same property, the corresponding property is given the value that was + * supplied for the last parameter with this name + * + * @path ch10/10.2/10.2.1/S10.2.1_A2.js + * @description Creating functions initialized with two or more formal parameters, which have the same name + * @noStrict + */ + +//CHECK#1 +function f1(x, x) { + return x; +} +if(!(f1(1, 2) === 2)) { + $ERROR("#1: f1(1, 2) === 2"); +} + +//CHECK#2 +function f2(x, x, x){ + return x*x*x; +} +if(!(f2(1, 2, 3) === 27)){ + $ERROR("f2(1, 2, 3) === 27"); +} + +//CHECK#3 +function f3(x, x) { + return 'a' + x; +} +if(!(f3(1, 2) === 'a2')){ + $ERROR("#3: f3(1, 2) === 'a2'"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A3.js b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A3.js new file mode 100644 index 000000000..1c15c0621 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A3.js @@ -0,0 +1,21 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * If the value of this last parameter (which has the same + * name as some previous parameters do) was not supplied by the + * caller, the value of the corresponding property is undefined + * + * @path ch10/10.2/10.2.1/S10.2.1_A3.js + * @description Creating functions with two or more formal parameters, + * that have the same name. Calling this function excluding a few last parameters + */ + +//CHECK#1 +function f1(x, a, b, x){ + return x; +} +if(!(f1(1, 2) === undefined)){ + $ERROR('#1: f1(1, 2) === undefined'); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A4_T1.js b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A4_T1.js new file mode 100644 index 000000000..a153af430 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A4_T1.js @@ -0,0 +1,49 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Function declaration in function code - If the variable object + * already has a property with the name of Function Identifier, replace its + * value and attributes. Semantically, this step must follow the creation of + * FormalParameterList properties + * + * @path ch10/10.2/10.2.1/S10.2.1_A4_T1.js + * @description Checking existence of a function with passed parameter + * @noStrict + */ + +//CHECK#1 +function f1(x){ + return x; + + function x(){ + return 7; + } +} +if(!(f1().constructor.prototype === Function.prototype)){ + $ERROR('#1: f1() returns function'); +} + +//CHECK#2 +function f2(x){ + return typeof x; + + function x(){ + return 7; + } +} +if(!(f2() === "function")){ + $ERROR('#2: f2() === "function"'); +} + +//CHECK#3 +function f3() { + return typeof arguments; + function arguments() { + return 7; + } +} +if (!(f3() === "function")){ + $ERROR('#3: f3() === "function"'); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A4_T2.js b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A4_T2.js new file mode 100644 index 000000000..16661df91 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A4_T2.js @@ -0,0 +1,41 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Function declaration in function code - If the variable object + * already has a property with the name of Function Identifier, replace its + * value and attributes. Semantically, this step must follow the creation of + * FormalParameterList properties + * + * @path ch10/10.2/10.2.1/S10.2.1_A4_T2.js + * @description Checking existence of a function with declared variable + */ + +//CHECK#1 +function f1(){ + var x; + + return x; + + function x(){ + return 7; + } +} +if(!(f1().constructor.prototype === Function.prototype)){ + $PRINT('#1: f1() returns function'); +} + +//CHECK#2 +function f2(){ + var x; + + return typeof x; + + function x(){ + return 7; + } +} +if(!(f2() === "function")){ + $PRINT('#2: f2() === "function"'); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T1.js b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T1.js new file mode 100644 index 000000000..824aedeee --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T1.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * For each VariableDeclaration or VariableDeclarationNoIn in the + * code, create a property of the variable object whose name is the Identifier + * in the VariableDeclaration or VariableDeclarationNoIn, whose value is + * undefined and whose attributes are determined by the type of code + * + * @path ch10/10.2/10.2.1/S10.2.1_A5.1_T1.js + * @description Checking variable existence only + */ + +//CHECK#1 +function f1(){ + var x; + + return typeof x; +} + +if(!(f1() === "undefined")){ + $PRINT('#1: f1() === "undefined"'); +} + +//CHECK#2 +function f2(){ + var x; + + return x; +} + +if(!(f2() === undefined)){ + $PRINT('#1: f2() === undefined'); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T2.js b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T2.js new file mode 100644 index 000000000..adef8b5c5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.1_T2.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * For each VariableDeclaration or VariableDeclarationNoIn in the + * code, create a property of the variable object whose name is the Identifier + * in the VariableDeclaration or VariableDeclarationNoIn, whose value is + * undefined and whose attributes are determined by the type of code + * + * @path ch10/10.2/10.2.1/S10.2.1_A5.1_T2.js + * @description Checking existence of the variable object property with formal parameter + */ + +//CHECK#1 +function f1(x){ + var x; + + return typeof x; +} + +if(!(f1() === "undefined")){ + $PRINT('#1: f1(1) === "undefined"'); +} + +//CHECK#2 +function f2(x){ + var x; + + return x; +} + +if(!(f2() === undefined)){ + $PRINT('#1: f2(1) === undefined'); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.2_T1.js b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.2_T1.js new file mode 100644 index 000000000..d5321c907 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.1/S10.2.1_A5.2_T1.js @@ -0,0 +1,34 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * If there is already a property of the variable object with the + * name of a declared variable, the value of the property and its attributes + * are not changed + * + * @path ch10/10.2/10.2.1/S10.2.1_A5.2_T1.js + * @description Checking existence of the variable object property with formal parameter + */ + +//CHECK#1 +function f1(x){ + var x; + + return typeof x; +} + +if(!(f1(1) === "number")){ + $PRINT('#1: f1(1) === "number"'); +} + +//CHECK#2 +function f2(x){ + var x; + + return x; +} + +if(!(f2(1) === 1)){ + $PRINT('#1: f2(1) === 1'); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/browser.js b/js/src/tests/test262/ch10/10.2/10.2.1/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.1/shell.js b/js/src/tests/test262/ch10/10.2/10.2.1/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T1.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T1.js new file mode 100644 index 000000000..7aba918d1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T1.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T1.js + * @description Checking scope chain containing function declarations + */ + +var x = 0; + +function f1(){ + var x = 1; + function f2(){ + return x; + }; + return f2(); +} + +if(!(f1() === 1)){ + $ERROR("#1: Scope chain disturbed"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T2.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T2.js new file mode 100644 index 000000000..33b472418 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T2.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T2.js + * @description Checking scope chain containing function declarations + */ + +var x = 0; + +function f1(){ + function f2(){ + return x; + }; + return f2(); +} + +if(!(f1() === 0)){ + $ERROR("#1: Scope chain disturbed"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T3.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T3.js new file mode 100644 index 000000000..a9a85deff --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T3.js @@ -0,0 +1,28 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T3.js + * @description Checking scope chain containing function declarations + */ + +var x = 0; + +function f1(){ + function f2(){ + return x; + }; + return f2(); + + var x = 1; +} + +if(!(f1() === undefined)){ + $ERROR("#1: Scope chain disturbed"); +} + + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T4.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T4.js new file mode 100644 index 000000000..e32ffac35 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T4.js @@ -0,0 +1,27 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T4.js + * @description Checking scope chain containing function declarations + */ + +var x = 0; + +function f1(){ + function f2(){ + return x; + }; + + var x = 1; + return f2(); +} + +if(!(f1() === 1)){ + $ERROR("#1: Scope chain disturbed"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T5.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T5.js new file mode 100644 index 000000000..c71654f6f --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T5.js @@ -0,0 +1,31 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T5.js + * @description Checking scope chain containing function declarations and "with" + * @noStrict + */ + +var x = 0; + +var myObj = {x : "obj"}; + +function f1(){ + var x = 1; + function f2(){ + with(myObj){ + return x; + } + }; + return f2(); +} + +if(!(f1() === "obj")){ + $ERROR("#1: Scope chain disturbed"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T6.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T6.js new file mode 100644 index 000000000..990c27ef3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T6.js @@ -0,0 +1,30 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T6.js + * @description Checking scope chain containing function declarations and "with" + * @noStrict + */ + +var x = 0; + +var myObj = {x : "obj"}; + +function f1(){ + function f2(){ + with(myObj){ + return x; + } + }; + return f2(); +} + +if(!(f1() === "obj")){ + $ERROR("#1: Scope chain disturbed"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T7.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T7.js new file mode 100644 index 000000000..cc719b504 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T7.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T7.js + * @description Checking scope chain containing function declarations and "with" + * @noStrict + */ + +var x = 0; + +var myObj = {x : "obj"}; + +function f1(){ + function f2(){ + with(myObj){ + return x; + } + }; + return f2(); + + var x = 1; +} + +if(!(f1() === "obj")){ + $ERROR("#1: Scope chain disturbed"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T8.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T8.js new file mode 100644 index 000000000..3aaefcf14 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T8.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T8.js + * @description Checking scope chain containing function declarations and "with" + * @noStrict + */ + +var x = 0; + +var myObj = {x : "obj"}; + +function f1(){ + function f2(){ + with(myObj){ + return x; + } + }; + + var x = 1; + return f2(); +} + +if(!(f1() === "obj")){ + $ERROR("#1: Scope chain disturbed"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T9.js b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T9.js new file mode 100644 index 000000000..c03fdd1cf --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.2/S10.2.2_A1_T9.js @@ -0,0 +1,27 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every execution context has associated with it a scope chain. + * A scope chain is a list of objects that are searched when evaluating an + * Identifier + * + * @path ch10/10.2/10.2.2/S10.2.2_A1_T9.js + * @description Checking scope chain containing function declarations and "with" + * @noStrict + */ + +var x = 0; + +var myObj = {x : "obj"}; + +function f1(){ + with(myObj){ + return x; + } +} + +if(!(f1() === "obj")){ + $ERROR("#1: Scope chain disturbed"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/browser.js b/js/src/tests/test262/ch10/10.2/10.2.2/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.2/shell.js b/js/src/tests/test262/ch10/10.2/10.2.2/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T1.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T1.js new file mode 100644 index 000000000..6a133d788 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T1.js @@ -0,0 +1,26 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.1_T1.js + * @description Global execution context - Value Properties + */ + +//CHECK#1 +if ( NaN === null ) { + $ERROR("#1: NaN === null"); +} + +//CHECK#2 +if ( Infinity === null ) { + $ERROR("#2: Infinity === null"); +} + +//CHECK#3 +if ( undefined === null ) { + $ERROR("#3: undefined === null"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T2.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T2.js new file mode 100644 index 000000000..1fafadc99 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T2.js @@ -0,0 +1,56 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.1_T2.js + * @description Global execution context - Function Properties + */ + +//CHECK#4 +if ( eval === null ) { + $ERROR("#4: eval === null"); +} + +//CHECK#5 +if ( parseInt === null ) { + $ERROR("#5: parseInt === null"); +} + +//CHECK#6 +if ( parseFloat === null ) { + $ERROR("#6: parseFloat === null"); +} + +//CHECK#7 +if ( isNaN === null ) { + $ERROR("#7: isNaN === null"); +} + +//CHECK#8 +if ( isFinite === null ) { + $ERROR("#8: isFinite === null"); +} + +//CHECK#9 +if ( decodeURI === null ) { + $ERROR("#9: decodeURI === null"); +} + +//CHECK#10 +if ( decodeURIComponent === null ) { + $ERROR("#10: decodeURIComponent === null"); +} + +//CHECK#11 +if ( encodeURI === null ) { + $ERROR("#11: encodeURI === null"); +} + +//CHECK#12 +if ( encodeURIComponent === null ) { + $ERROR("#12: encodeURIComponent === null"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T3.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T3.js new file mode 100644 index 000000000..3407039e8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T3.js @@ -0,0 +1,87 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.1_T3.js + * @description Global execution context - Constructor Properties + */ + +//CHECK#13 +if ( Object === null ) { + $ERROR("#13: Object === null"); +} + +//CHECK#14 +if ( Function === null ) { + $ERROR("#14: Function === null"); +} + +//CHECK#15 +if ( String === null ) { + $ERROR("#15: String === null"); +} + +//CHECK#16 +if ( Number === null ) { + $ERROR("#16: Number === null"); +} + +//CHECK#17 +if ( Array === null ) { + $ERROR("#17: Array === null"); +} + +//CHECK#18 +if ( Boolean === null ) { + $ERROR("#20: Boolean === null"); +} + +//CHECK#18 +if ( Date === null ) { + $ERROR("#18: Date === null"); +} + +//CHECK#19 +if ( RegExp === null ) { + $ERROR("#19: RegExp === null"); +} + +//CHECK#20 +if ( Error === null ) { + $ERROR("#20: Error === null"); +} + +//CHECK#21 +if ( EvalError === null ) { + $ERROR("#21: EvalError === null"); +} + +//CHECK#22 +if ( RangeError === null ) { + $ERROR("#22: RangeError === null"); +} + +//CHECK#23 +if ( ReferenceError === null ) { + $ERROR("#23: ReferenceError === null"); +} + +//CHECK#24 +if ( SyntaxError === null ) { + $ERROR("#24: SyntaxError === null"); +} + +//CHECK#25 +if ( TypeError === null ) { + $ERROR("#25: TypeError === null"); +} + +//CHECK#26 +if ( URIError === null ) { + $ERROR("#26: URIError === null"); +} + + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T4.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T4.js new file mode 100644 index 000000000..f59cc646e --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.1_T4.js @@ -0,0 +1,16 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.1_T4.js + * @description Global execution context - Other Properties + */ + +//CHECK#27 +if ( Math === null ) { + $ERROR("#27: Math === null"); +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T1.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T1.js new file mode 100644 index 000000000..a6b6c4bbf --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T1.js @@ -0,0 +1,30 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.2_T1.js + * @description Function execution context - Value Properties + */ + +function test() { + //CHECK#1 + if ( NaN === null ) { + $ERROR("#1: NaN === null"); + } + + //CHECK#2 + if ( Infinity === null ) { + $ERROR("#2: Infinity === null"); + } + + //CHECK#3 + if ( undefined === null ) { + $ERROR("#3: undefined === null"); + } +} + +test(); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T2.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T2.js new file mode 100644 index 000000000..45ca89f36 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T2.js @@ -0,0 +1,60 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.2_T2.js + * @description Function execution context - Function Properties + */ + +function test() { + //CHECK#4 + if ( eval === null ) { + $ERROR("#4: eval === null"); + } + + //CHECK#5 + if ( parseInt === null ) { + $ERROR("#5: parseInt === null"); + } + + //CHECK#6 + if ( parseFloat === null ) { + $ERROR("#6: parseFloat === null"); + } + + //CHECK#7 + if ( isNaN === null ) { + $ERROR("#7: isNaN === null"); + } + + //CHECK#8 + if ( isFinite === null ) { + $ERROR("#8: isFinite === null"); + } + + //CHECK#9 + if ( decodeURI === null ) { + $ERROR("#9: decodeURI === null"); + } + + //CHECK#10 + if ( decodeURIComponent === null ) { + $ERROR("#10: decodeURIComponent === null"); + } + + //CHECK#11 + if ( encodeURI === null ) { + $ERROR("#11: encodeURI === null"); + } + + //CHECK#12 + if ( encodeURIComponent === null ) { + $ERROR("#12: encodeURIComponent === null"); + } +} + +test(); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T3.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T3.js new file mode 100644 index 000000000..295943cb7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T3.js @@ -0,0 +1,90 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.2_T3.js + * @description Function execution context - Constructor Properties + */ + +function test() { + //CHECK#13 + if ( Object === null ) { + $ERROR("#13: Object === null"); + } + + //CHECK#14 + if ( Function === null ) { + $ERROR("#14: Function === null"); + } + + //CHECK#15 + if ( String === null ) { + $ERROR("#15: String === null"); + } + + //CHECK#16 + if ( Number === null ) { + $ERROR("#16: Function === null"); + } + + //CHECK#17 + if ( Array === null ) { + $ERROR("#17: Array === null"); + } + + //CHECK#18 + if ( Boolean === null ) { + $ERROR("#20: Boolean === null"); + } + + //CHECK#18 + if ( Date === null ) { + $ERROR("#18: Date === null"); + } + + //CHECK#19 + if ( RegExp === null ) { + $ERROR("#19: RegExp === null"); + } + + //CHECK#20 + if ( Error === null ) { + $ERROR("#20: Error === null"); + } + + //CHECK#21 + if ( EvalError === null ) { + $ERROR("#21: EvalError === null"); + } + + //CHECK#22 + if ( RangeError === null ) { + $ERROR("#22: RangeError === null"); + } + + //CHECK#23 + if ( ReferenceError === null ) { + $ERROR("#23: ReferenceError === null"); + } + + //CHECK#24 + if ( SyntaxError === null ) { + $ERROR("#24: SyntaxError === null"); + } + + //CHECK#25 + if ( TypeError === null ) { + $ERROR("#25: TypeError === null"); + } + + //CHECK#26 + if ( URIError === null ) { + $ERROR("#26: URIError === null"); + } +} + +test(); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T4.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T4.js new file mode 100644 index 000000000..01d02fb39 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.2_T4.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.2_T4.js + * @description Function execution context - Other Properties + */ + +function test() { + //CHECK#27 + if ( Math === null ) { + $ERROR("#27: Math === null"); + } +} + +test(); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T1.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T1.js new file mode 100644 index 000000000..695f0acf5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T1.js @@ -0,0 +1,30 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.3_T1.js + * @description Eval execution context - Value Properties + */ + +var evalStr = +'//CHECK#1\n'+ +'if ( NaN === null ) {\n'+ +' $ERROR("#1: NaN === null");\n'+ +'}\n'+ + +'//CHECK#2\n'+ +'if ( Infinity === null ) {\n'+ +' $ERROR("#2: Infinity === null");\n'+ +'}\n'+ + +'//CHECK#3\n'+ +'if ( undefined === null ) {\n'+ +' $ERROR("#3: undefined === null");\n'+ +'}\n'+ +';\n'; + +eval(evalStr); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T2.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T2.js new file mode 100644 index 000000000..5afd0ef93 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T2.js @@ -0,0 +1,60 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.3_T2.js + * @description Eval execution context - Function Properties + */ + +var evalStr = +'//CHECK#4\n'+ +'if ( eval === null ) {\n'+ +' $ERROR("#4: eval === null");\n'+ +'}\n'+ + +'//CHECK#5\n'+ +'if ( parseInt === null ) {\n'+ +' $ERROR("#5: parseInt === null");\n'+ +'}\n'+ + +'//CHECK#6\n'+ +'if ( parseFloat === null ) {\n'+ +' $ERROR("#6: parseFloat === null");\n'+ +'}\n'+ + +'//CHECK#7\n'+ +'if ( isNaN === null ) {\n'+ +' $ERROR("#7: isNaN === null");\n'+ +'}\n'+ + +'//CHECK#8\n'+ +'if ( isFinite === null ) {\n'+ +' $ERROR("#8: isFinite === null");\n'+ +'}\n'+ + +'//CHECK#9\n'+ +'if ( decodeURI === null ) {\n'+ +' $ERROR("#9: decodeURI === null");\n'+ +'}\n'+ + +'//CHECK#10\n'+ +'if ( decodeURIComponent === null ) {\n'+ +' $ERROR("#10: decodeURIComponent === null");\n'+ +'}\n'+ + +'//CHECK#11\n'+ +'if ( encodeURI === null ) {\n'+ +' $ERROR("#11: encodeURI === null");\n'+ +'}\n'+ + +'//CHECK#12\n'+ +'if ( encodeURIComponent === null ) {\n'+ +' $ERROR("#12: encodeURIComponent === null");\n'+ +'}\n'+ +';\n'; + +eval(evalStr); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T3.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T3.js new file mode 100644 index 000000000..b34b1e252 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T3.js @@ -0,0 +1,90 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.3_T3.js + * @description Eval execution context - Constructor Properties + */ + +var evalStr = +'//CHECK#13\n'+ +'if ( Object === null ) {\n'+ +' $ERROR("#13: Object === null");\n'+ +'}\n'+ + +'//CHECK#14\n'+ +'if ( Function === null ) {\n'+ +' $ERROR("#14: Function === null");\n'+ +'}\n'+ + +'//CHECK#15\n'+ +'if ( String === null ) {\n'+ +' $ERROR("#15: String === null");\n'+ +'}\n'+ + +'//CHECK#16\n'+ +'if ( Number === null ) {\n'+ +' $ERROR("#16: Function === null");\n'+ +'}\n'+ + +'//CHECK#17\n'+ +'if ( Array === null ) {\n'+ +' $ERROR("#17: Array === null");\n'+ +'}\n'+ + +'//CHECK#18\n'+ +'if ( Boolean === null ) {\n'+ +' $ERROR("#20: Boolean === null");\n'+ +'}\n'+ + +'//CHECK#18\n'+ +'if ( Date === null ) {\n'+ +' $ERROR("#18: Date === null");\n'+ +'}\n'+ + +'//CHECK#19\n'+ +'if ( RegExp === null ) {\n'+ +' $ERROR("#19: RegExp === null");\n'+ +'}\n'+ + +'//CHECK#20\n'+ +'if ( Error === null ) {\n'+ +' $ERROR("#20: Error === null");\n'+ +'}\n'+ + +'//CHECK#21\n'+ +'if ( EvalError === null ) {\n'+ +' $ERROR("#21: EvalError === null");\n'+ +'}\n'+ + +'//CHECK#22\n'+ +'if ( RangeError === null ) {\n'+ +' $ERROR("#22: RangeError === null");\n'+ +'}\n'+ + +'//CHECK#23\n'+ +'if ( ReferenceError === null ) {\n'+ +' $ERROR("#23: ReferenceError === null");\n'+ +'}\n'+ + +'//CHECK#24\n'+ +'if ( SyntaxError === null ) {\n'+ +' $ERROR("#24: SyntaxError === null");\n'+ +'}\n'+ + +'//CHECK#25\n'+ +'if ( TypeError === null ) {\n'+ +' $ERROR("#25: TypeError === null");\n'+ +'}\n'+ + +'//CHECK#26\n'+ +'if ( URIError === null ) {\n'+ +' $ERROR("#26: URIError === null");\n'+ +'}\n'+ +';\n'; + +eval(evalStr); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T4.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T4.js new file mode 100644 index 000000000..054969ce2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A1.3_T4.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object has properties such as built-in objects such as + * Math, String, Date, parseInt, etc + * + * @path ch10/10.2/10.2.3/S10.2.3_A1.3_T4.js + * @description Eval execution context - Other Properties + */ + +var evalStr = +'//CHECK#27\n'+ +'if ( Math === null ) {\n'+ +' $ERROR("#27: Math === null");\n'+ +'}\n'+ +';\n'; + +eval(evalStr); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T1.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T1.js new file mode 100644 index 000000000..db57ad5ba --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T1.js @@ -0,0 +1,21 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.1_T1.js + * @description Global execution context - Value Properties + */ + +//CHECK#1 +for (var x in this) { + if ( x === 'NaN' ) { + $ERROR("#1: 'NaN' have attribute DontEnum"); + } else if ( x === 'Infinity' ) { + $ERROR("#1: 'Infinity' have attribute DontEnum"); + } else if ( x === 'undefined' ) { + $ERROR("#1: 'undefined' have attribute DontEnum"); + } +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T2.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T2.js new file mode 100644 index 000000000..6a39d43a1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T2.js @@ -0,0 +1,33 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.1_T2.js + * @description Global execution context - Function Properties + */ + +//CHECK#1 +for (var x in this) { + if ( x === 'eval' ) { + $ERROR("#1: 'eval' have attribute DontEnum"); + } else if ( x === 'parseInt' ) { + $ERROR("#1: 'parseInt' have attribute DontEnum"); + } else if ( x === 'parseFloat' ) { + $ERROR("#1: 'parseFloat' have attribute DontEnum"); + } else if ( x === 'isNaN' ) { + $ERROR("#1: 'isNaN' have attribute DontEnum"); + } else if ( x === 'isFinite' ) { + $ERROR("#1: 'isFinite' have attribute DontEnum"); + } else if ( x === 'decodeURI' ) { + $ERROR("#1: 'decodeURI' have attribute DontEnum"); + } else if ( x === 'decodeURIComponent' ) { + $ERROR("#1: 'decodeURIComponent' have attribute DontEnum"); + } else if ( x === 'encodeURI' ) { + $ERROR("#1: 'encodeURI' have attribute DontEnum"); + } else if ( x === 'encodeURIComponent' ) { + $ERROR("#1: 'encodeURIComponent' have attribute DontEnum"); + } +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T3.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T3.js new file mode 100644 index 000000000..c684a649a --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T3.js @@ -0,0 +1,45 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.1_T3.js + * @description Global execution context - Constructor Properties + */ + +//CHECK#1 +for (var x in this) { + if ( x === 'Object' ) { + $ERROR("#1: 'property 'Object' have attribute DontEnum"); + } else if ( x === 'Function') { + $ERROR("#1: 'Function' have attribute DontEnum"); + } else if ( x === 'String' ) { + $ERROR("#1: 'String' have attribute DontEnum"); + } else if ( x === 'Number' ) { + $ERROR("#1: 'Number' have attribute DontEnum"); + } else if ( x === 'Array' ) { + $ERROR("#1: 'Array' have attribute DontEnum"); + } else if ( x === 'Boolean' ) { + $ERROR("#1: 'Boolean' have attribute DontEnum"); + } else if ( x === 'Date' ) { + $ERROR("#1: 'Date' have attribute DontEnum"); + } else if ( x === 'RegExp' ) { + $ERROR("#1: 'RegExp' have attribute DontEnum"); + } else if ( x === 'Error' ) { + $ERROR("#1: 'Error' have attribute DontEnum"); + } else if ( x === 'EvalError' ) { + $ERROR("#1: 'EvalError' have attribute DontEnum"); + } else if ( x === 'RangeError' ) { + $ERROR("#1: 'RangeError' have attribute DontEnum"); + } else if ( x === 'ReferenceError' ) { + $ERROR("#1: 'ReferenceError' have attribute DontEnum"); + } else if ( x === 'SyntaxError' ) { + $ERROR("#1: 'SyntaxError' have attribute DontEnum"); + } else if ( x === 'TypeError' ) { + $ERROR("#1: 'TypeError' have attribute DontEnum"); + } else if ( x === 'URIError' ) { + $ERROR("#1: 'URIError' have attribute DontEnum"); + } +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T4.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T4.js new file mode 100644 index 000000000..cb575c533 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.1_T4.js @@ -0,0 +1,17 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.1_T4.js + * @description Global execution context - Other Properties + */ + +//CHECK#1 +for (var x in this) { + if ( x === 'Math' ) { + $ERROR("#1: 'Math' have attribute DontEnum"); + } +} + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T1.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T1.js new file mode 100644 index 000000000..808cc1b60 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T1.js @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.2_T1.js + * @description Function execution context - Value Properties + */ + +function test() { + //CHECK#1 + for (var x in this) { + if ( x === 'NaN' ) { + $ERROR("#1: 'NaN' have attribute DontEnum"); + } else if ( x === 'Infinity' ) { + $ERROR("#1: 'Infinity' have attribute DontEnum"); + } else if ( x === 'undefined' ) { + $ERROR("#1: 'undefined' have attribute DontEnum"); + } + } +} + +test(); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T2.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T2.js new file mode 100644 index 000000000..ac87a58ef --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T2.js @@ -0,0 +1,37 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.2_T2.js + * @description Function execution context - Function Properties + */ + +function test() { + //CHECK#1 + for (var x in this) { + if ( x === 'eval' ) { + $ERROR("#1: 'eval' have attribute DontEnum"); + } else if ( x === 'parseInt' ) { + $ERROR("#1: 'parseInt' have attribute DontEnum"); + } else if ( x === 'parseFloat' ) { + $ERROR("#1: 'parseFloat' have attribute DontEnum"); + } else if ( x === 'isNaN' ) { + $ERROR("#1: 'isNaN' have attribute DontEnum"); + } else if ( x === 'isFinite' ) { + $ERROR("#1: 'isFinite' have attribute DontEnum"); + } else if ( x === 'decodeURI' ) { + $ERROR("#1: 'decodeURI' have attribute DontEnum"); + } else if ( x === 'decodeURIComponent' ) { + $ERROR("#1: 'decodeURIComponent' have attribute DontEnum"); + } else if ( x === 'encodeURI' ) { + $ERROR("#1: 'encodeURI' have attribute DontEnum"); + } else if ( x === 'encodeURIComponent' ) { + $ERROR("#1: 'encodeURIComponent' have attribute DontEnum"); + } + } +} + +test(); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T3.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T3.js new file mode 100644 index 000000000..e6f5f4ac7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T3.js @@ -0,0 +1,49 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.2_T3.js + * @description Function execution context - Constructor Properties + */ + +function test() { + //CHECK#1 + for (var x in this) { + if ( x === 'Object' ) { + $ERROR("#1: 'property 'Object' have attribute DontEnum"); + } else if ( x === 'Function') { + $ERROR("#1: 'Function' have attribute DontEnum"); + } else if ( x === 'String' ) { + $ERROR("#1: 'String' have attribute DontEnum"); + } else if ( x === 'Number' ) { + $ERROR("#1: 'Number' have attribute DontEnum"); + } else if ( x === 'Array' ) { + $ERROR("#1: 'Array' have attribute DontEnum"); + } else if ( x === 'Boolean' ) { + $ERROR("#1: 'Boolean' have attribute DontEnum"); + } else if ( x === 'Date' ) { + $ERROR("#1: 'Date' have attribute DontEnum"); + } else if ( x === 'RegExp' ) { + $ERROR("#1: 'RegExp' have attribute DontEnum"); + } else if ( x === 'Error' ) { + $ERROR("#1: 'Error' have attribute DontEnum"); + } else if ( x === 'EvalError' ) { + $ERROR("#1: 'EvalError' have attribute DontEnum"); + } else if ( x === 'RangeError' ) { + $ERROR("#1: 'RangeError' have attribute DontEnum"); + } else if ( x === 'ReferenceError' ) { + $ERROR("#1: 'ReferenceError' have attribute DontEnum"); + } else if ( x === 'SyntaxError' ) { + $ERROR("#1: 'SyntaxError' have attribute DontEnum"); + } else if ( x === 'TypeError' ) { + $ERROR("#1: 'TypeError' have attribute DontEnum"); + } else if ( x === 'URIError' ) { + $ERROR("#1: 'URIError' have attribute DontEnum"); + } + } +} + +test(); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T4.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T4.js new file mode 100644 index 000000000..3a6afa5cc --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.2_T4.js @@ -0,0 +1,21 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.2_T4.js + * @description Function execution context - Other Properties + */ + +function test() { + //CHECK#1 + for (var x in this) { + if ( x === 'Math' ) { + $ERROR("#1: 'Math' have attribute DontEnum"); + } + } +} + +test(); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T1.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T1.js new file mode 100644 index 000000000..f7f32c563 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T1.js @@ -0,0 +1,24 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.3_T1.js + * @description Global execution context - Value Properties + */ + +var evalStr = +'//CHECK#1\n'+ +'for (var x in this) {\n'+ +' if ( x === \'NaN\' ) {\n'+ +' $ERROR("#1: \'NaN\' have attribute DontEnum");\n'+ +' } else if ( x === \'Infinity\' ) {\n'+ +' $ERROR("#1: \'Infinity\' have attribute DontEnum");\n'+ +' } else if ( x === \'undefined\' ) {\n'+ +' $ERROR("#1: \'undefined\' have attribute DontEnum");\n'+ +' }\n'+ +'}\n'; + +eval(evalStr); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T2.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T2.js new file mode 100644 index 000000000..8d3cfe7ee --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T2.js @@ -0,0 +1,36 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.3_T2.js + * @description Global execution context - Function Properties + */ + +var evalStr = +'//CHECK#1\n'+ +'for (var x in this) {\n'+ +' if ( x === \'eval\' ) {\n'+ +' $ERROR("#1: \'eval\' have attribute DontEnum");\n'+ +' } else if ( x === \'parseInt\' ) {\n'+ +' $ERROR("#1: \'parseInt\' have attribute DontEnum");\n'+ +' } else if ( x === \'parseFloat\' ) {\n'+ +' $ERROR("#1: \'parseFloat\' have attribute DontEnum");\n'+ +' } else if ( x === \'isNaN\' ) {\n'+ +' $ERROR("#1: \'isNaN\' have attribute DontEnum");\n'+ +' } else if ( x === \'isFinite\' ) {\n'+ +' $ERROR("#1: \'isFinite\' have attribute DontEnum");\n'+ +' } else if ( x === \'decodeURI\' ) {\n'+ +' $ERROR("#1: \'decodeURI\' have attribute DontEnum");\n'+ +' } else if ( x === \'decodeURIComponent\' ) {\n'+ +' $ERROR("#1: \'decodeURIComponent\' have attribute DontEnum");\n'+ +' } else if ( x === \'encodeURI\' ) {\n'+ +' $ERROR("#1: \'encodeURI\' have attribute DontEnum");\n'+ +' } else if ( x === \'encodeURIComponent\' ) {\n'+ +' $ERROR("#1: \'encodeURIComponent\' have attribute DontEnum");\n'+ +' }\n'+ +'}\n'; + +eval(evalStr); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T3.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T3.js new file mode 100644 index 000000000..9ae75beb9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T3.js @@ -0,0 +1,48 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.3_T3.js + * @description Global execution context - Constructor Properties + */ + +var evalStr = +'//CHECK#1\n'+ +'for (var x in this) {\n'+ +' if ( x === \'Object\' ) {\n'+ +' $ERROR("#1: \'Object\' have attribute DontEnum");\n'+ +' } else if ( x === \'Function\') {\n'+ +' $ERROR("#1: \'Function\' have attribute DontEnum");\n'+ +' } else if ( x === \'String\' ) {\n'+ +' $ERROR("#1: \'String\' have attribute DontEnum");\n'+ +' } else if ( x === \'Number\' ) {\n'+ +' $ERROR("#1: \'Number\' have attribute DontEnum");\n'+ +' } else if ( x === \'Array\' ) {\n'+ +' $ERROR("#1: \'Array\' have attribute DontEnum");\n'+ +' } else if ( x === \'Boolean\' ) {\n'+ +' $ERROR("#1: \'Boolean\' have attribute DontEnum");\n'+ +' } else if ( x === \'Date\' ) {\n'+ +' $ERROR("#1: \'Date\' have attribute DontEnum");\n'+ +' } else if ( x === \'RegExp\' ) {\n'+ +' $ERROR("#1: \'RegExp\' have attribute DontEnum");\n'+ +' } else if ( x === \'Error\' ) {\n'+ +' $ERROR("#1: \'Error\' have attribute DontEnum");\n'+ +' } else if ( x === \'EvalError\' ) {\n'+ +' $ERROR("#1: \'EvalError\' have attribute DontEnum");\n'+ +' } else if ( x === \'RangeError\' ) {\n'+ +' $ERROR("#1: \'RangeError\' have attribute DontEnum");\n'+ +' } else if ( x === \'ReferenceError\' ) {\n'+ +' $ERROR("#1: \'ReferenceError\' have attribute DontEnum");\n'+ +' } else if ( x === \'SyntaxError\' ) {\n'+ +' $ERROR("#1: \'SyntaxError\' have attribute DontEnum");\n'+ +' } else if ( x === \'TypeError\' ) {\n'+ +' $ERROR("#1: \'TypeError\' have attribute DontEnum");\n'+ +' } else if ( x === \'URIError\' ) {\n'+ +' $ERROR("#1: \'URIError\' have attribute DontEnum");\n'+ +' }\n'+ +'}\n'; + +eval(evalStr); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T4.js b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T4.js new file mode 100644 index 000000000..ed60835c9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.2/10.2.3/S10.2.3_A2.3_T4.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Global object properties have attributes { DontEnum } + * + * @path ch10/10.2/10.2.3/S10.2.3_A2.3_T4.js + * @description Global execution context - Other Properties + */ + +var evalStr = +'//CHECK#1\n'+ +'for (var x in this) {\n'+ +' if ( x === \'Math\' ) {\n'+ +' $ERROR("#1: \'Math\' have attribute DontEnum");\n'+ +' }\n'+ +'}\n'; + +eval(evalStr); + diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/browser.js b/js/src/tests/test262/ch10/10.2/10.2.3/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/10.2.3/shell.js b/js/src/tests/test262/ch10/10.2/10.2.3/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/browser.js b/js/src/tests/test262/ch10/10.2/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.2/shell.js b/js/src/tests/test262/ch10/10.2/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.4/10.4.1/S10.4.1_A1_T1.js b/js/src/tests/test262/ch10/10.4/10.4.1/S10.4.1_A1_T1.js new file mode 100644 index 000000000..04abf8bef --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.1/S10.4.1_A1_T1.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Variable instantiation is performed using the global object as + * the variable object and using property attributes { DontDelete } + * + * @path ch10/10.4/10.4.1/S10.4.1_A1_T1.js + * @description Checking if deleting variable x, that is defined as var x = 1, fails + * @noStrict + */ + +var x = 1; + +if (this.x !== 1) { + $ERROR("#1: variable x is a property of global object"); +} + +if(delete this.x !== false){ + $ERROR("#2: variable x has property attribute DontDelete"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.1/S10.4.1_A1_T2.js b/js/src/tests/test262/ch10/10.4/10.4.1/S10.4.1_A1_T2.js new file mode 100644 index 000000000..107381f2d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.1/S10.4.1_A1_T2.js @@ -0,0 +1,22 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Variable instantiation is performed using the global object as + * the variable object and using property attributes { DontDelete } + * + * @path ch10/10.4/10.4.1/S10.4.1_A1_T2.js + * @description Checking if deleting variable x, that is defined as x = 1, fails + * @noStrict + */ + +x = 1; + +if (this.x !== 1) { + $ERROR("#1: variable x is a property of global object"); +} + +if(delete this.x !== true){ + $ERROR("#2: variable x has property attribute DontDelete"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.1/browser.js b/js/src/tests/test262/ch10/10.4/10.4.1/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.4/10.4.1/shell.js b/js/src/tests/test262/ch10/10.4/10.4.1/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-1.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-1.js new file mode 100644 index 000000000..233eac2c8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-1.js @@ -0,0 +1,26 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2-1-1.js + * @description Indirect call to eval has context set to global context + */ + +var __10_4_2_1_1_1 = "str"; +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; + } +} +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-2.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-2.js new file mode 100644 index 000000000..7c144f552 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-2.js @@ -0,0 +1,31 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2-1-2.js + * @description Indirect call to eval has context set to global context (nested function) + */ + +var __10_4_2_1_2 = "str"; +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; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-3.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-3.js new file mode 100644 index 000000000..078ea21ab --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-3.js @@ -0,0 +1,34 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2-1-3.js + * @description Indirect call to eval has context set to global context (catch block) + */ + +var __10_4_2_1_3 = "str"; +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; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-4.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-4.js new file mode 100644 index 000000000..8a025f0d9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-4.js @@ -0,0 +1,29 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2-1-4.js + * @description Indirect call to eval has context set to global context (with block) + */ + +var __10_4_2_1_4 = "str"; +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; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-5.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-5.js new file mode 100644 index 000000000..3808a9988 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-1-5.js @@ -0,0 +1,27 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/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) + */ + +var __10_4_2_1_5 = "str"; +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; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-2-c-1.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-2-c-1.js new file mode 100644 index 000000000..61d85cec0 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-2-c-1.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/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 + */ + + +function testcase() { + var x = 0; + return function inner() { + eval("var x = 1"); + if (x === 1) + return true; + } (); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-2-s.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-2-s.js new file mode 100644 index 000000000..fb00b04f5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-2-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2-2-s.js + * @description Strict Mode - Strict mode eval code cannot instantiate functions in the variable environment of the caller to eval + * @onlyStrict + */ + + +function testcase() { + "use strict"; + eval("(function fun(x){ return x })(10)"); + return typeof (fun) === "undefined"; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-3-c-1-s.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-3-c-1-s.js new file mode 100644 index 000000000..57ee1912d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-3-c-1-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2-3-c-1-s.js + * @description Direct eval code in strict mode - cannot instantiate variable in the variable environment of the calling context + * @onlyStrict + */ + + +function testcase() { + var _10_4_2_3_c_1_s = 0; + function _10_4_2_3_c_1_sFunc() { + eval("'use strict';var _10_4_2_3_c_1_s = 1"); + return _10_4_2_3_c_1_s===0; + } + return _10_4_2_3_c_1_sFunc(); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-3-c-2-s.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-3-c-2-s.js new file mode 100644 index 000000000..91caa626b --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2-3-c-2-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2-3-c-2-s.js + * @description Calling code in strict mode - eval cannot instantiate variable in the variable environment of the calling context + * @onlyStrict + */ + + +function testcase() { + var _10_4_2_3_c_2_s = 0; + function _10_4_2_3_c_2_sFunc() { + 'use strict'; + eval("var _10_4_2_3_c_2_s = 1"); + return _10_4_2_3_c_2_s===0; + } + return _10_4_2_3_c_2_sFunc(); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-1gs.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-1gs.js new file mode 100644 index 000000000..e0d77031f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-1gs.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. + +/** + * @path ch10/10.4/10.4.2/10.4.2.1-1gs.js + * @description Strict Mode - eval code cannot instantiate variable in the variable environment of the calling context that invoked the eval if the code of the calling context is strict code + * @onlyStrict + * @negative ^((?!NotEarlyError).)*$ + */ + +"use strict"; +eval("var x = 7;"); +x = 9; +throw NotEarlyError; diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-2-s.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-2-s.js new file mode 100644 index 000000000..5fc76cb35 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-2-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2.1-2-s.js + * @description Strict Mode - Strict mode eval code cannot instantiate functions in the variable environment of the caller to eval + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + eval("function _10_4_2_1_2_fun(){}"); + return typeof _10_4_2_1_2_fun === "undefined"; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-4-s.js b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-4-s.js new file mode 100644 index 000000000..89ce85399 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/10.4.2.1-4-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.2/10.4.2.1-4-s.js + * @description Strict Mode - Strict mode eval code cannot instantiate functions in the variable environment of the caller to eval which is contained in strict mode code + * @onlyStrict + */ + + +function testcase() { + + eval("'use strict'; function _10_4_2_1_4_fun(){}"); + return typeof _10_4_2_1_4_fun === "undefined"; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2.1_A1.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2.1_A1.js new file mode 100644 index 000000000..3a3690ce9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2.1_A1.js @@ -0,0 +1,17 @@ +// Copyright 2011 Google Inc. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @path ch10/10.4/10.4.2/S10.4.2.1_A1.js + * @description Strict indirect eval should not leak top level + * declarations into the global scope + * @onlyStrict + */ + +"use strict"; +if (!('foo' in this)) { + (1,eval)('"use strict"; var foo = 88;'); + if ('foo' in this) { + $ERROR("Strict indirect eval leaked a top level declaration"); + } +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T1.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T1.js new file mode 100644 index 000000000..077ae7be1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T1.js @@ -0,0 +1,28 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T1.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; +x = 1; +y = 2; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T10.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T10.js new file mode 100644 index 000000000..4903b5b3b --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T10.js @@ -0,0 +1,28 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T10.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; +var x = 1; +var y = 2; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T11.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T11.js new file mode 100644 index 000000000..fb7b1690e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T11.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T11.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + +this.x = 1; +this.y = 2; + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T2.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T2.js new file mode 100644 index 000000000..b7eb20df0 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T2.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T2.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + +var x = 1; +var y = 2; + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T3.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T3.js new file mode 100644 index 000000000..3b32b2bc2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T3.js @@ -0,0 +1,28 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T3.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; +this.x = 1; +this.y = 2; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T4.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T4.js new file mode 100644 index 000000000..c5e5d0a04 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T4.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T4.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; +x = 1; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + +y = 2; + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T5.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T5.js new file mode 100644 index 000000000..927a8007d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T5.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T5.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; +var x = 1; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + +var y = 2; + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T6.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T6.js new file mode 100644 index 000000000..b9fb461f6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T6.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T6.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; +this.x = 1; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + +this.y = 2; + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T7.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T7.js new file mode 100644 index 000000000..93160490c --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T7.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T7.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; +x = 1; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + +var y = 2; + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T8.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T8.js new file mode 100644 index 000000000..5376140af --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T8.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T8.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; +this.x = 1; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + +var y = 2; + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T9.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T9.js new file mode 100644 index 000000000..76d75b8f9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.1_T9.js @@ -0,0 +1,29 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.1_T9.js + * @description eval within global execution context + */ + +var i; +var j; +str1 = ''; +str2 = ''; + +for(i in this){ + str1+=i; +} + +eval('for(j in this){\nstr2+=j;\n}'); + +if(!(str1 === str2)){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + +x = 1; +y = 2; + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T1.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T1.js new file mode 100644 index 000000000..229cfc63f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T1.js @@ -0,0 +1,31 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T1.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + x = 1; + y = 2; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + return (str1 === str2); +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T10.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T10.js new file mode 100644 index 000000000..1707379cf --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T10.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T10.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + var x = 1; + var y = 2; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T11.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T11.js new file mode 100644 index 000000000..b94f2aa56 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T11.js @@ -0,0 +1,34 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T11.js + * @description eval within global execution context + * @noStrict + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); + + this.x = 1; + this.y = 2; +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T2.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T2.js new file mode 100644 index 000000000..72611dc49 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T2.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T2.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); + var x = 1; + var y = 2; +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T3.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T3.js new file mode 100644 index 000000000..f3cd1b0bf --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T3.js @@ -0,0 +1,32 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T3.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + this.x = 1; + this.y = 2; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T4.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T4.js new file mode 100644 index 000000000..cebe8f3a2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T4.js @@ -0,0 +1,33 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T4.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + x = 1; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); + + y = 2; +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T5.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T5.js new file mode 100644 index 000000000..802434849 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T5.js @@ -0,0 +1,34 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T5.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + var x = 1; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); + + var y = 2; +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T6.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T6.js new file mode 100644 index 000000000..275f8ce98 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T6.js @@ -0,0 +1,34 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T6.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + this.x = 1; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); + + this.y = 2; +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T7.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T7.js new file mode 100644 index 000000000..1870bc1fd --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T7.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T7.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + x = 1; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); + + var y = 2; +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + + + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T8.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T8.js new file mode 100644 index 000000000..8f1282460 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T8.js @@ -0,0 +1,34 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T8.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + this.x = 1; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); + + var y = 2; +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T9.js b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T9.js new file mode 100644 index 000000000..e77ca4323 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.2/S10.4.2_A1.2_T9.js @@ -0,0 +1,34 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The scope chain is initialised to contain the same objects, + * in the same order, as the calling context's scope chain + * + * @path ch10/10.4/10.4.2/S10.4.2_A1.2_T9.js + * @description eval within global execution context + */ + +function f(){ + var i; + var j; + str1 = ''; + str2 = ''; + + for(i in this){ + str1+=i; + } + + eval('for(j in this){\nstr2+=j;\n}'); + + return (str1 === str2); + + x = 1; + y = 2; +} + +if(!f()){ + $ERROR("#1: scope chain must contain same objects in the same order as the calling context"); +} + + diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/browser.js b/js/src/tests/test262/ch10/10.4/10.4.2/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.4/10.4.2/shell.js b/js/src/tests/test262/ch10/10.4/10.4.2/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-1-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-1-s.js new file mode 100644 index 000000000..9ed7152e4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-1-s.js @@ -0,0 +1,29 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-1-s.js + * @description this is not coerced to an object in strict mode (Number) + * @noStrict + */ + + +function testcase() { + + function foo() + { + 'use strict'; + return typeof(this); + } + + function bar() + { + return typeof(this); + } + + + return foo.call(1) === 'number' && bar.call(1) === 'object'; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-10-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-10-s.js new file mode 100644 index 000000000..d737cff1a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-10-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-10-s.js + * @description Strict Mode - checking 'this' (FunctionExpression includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var f = function () { + "use strict"; + return typeof this; +} +return f() === "undefined"; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-100-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-100-s.js new file mode 100644 index 000000000..98deb941e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-100-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-100-s.js + * @description Strict Mode - checking 'this' (strict function passed as arg to String.prototype.replace from non-strict context) + * @onlyStrict + */ + +function testcase() { +var x = 3; + +function f() { + "use strict"; + x = this; + return "a"; +} +return ("ab".replace("b", f)==="aa") && (x===undefined); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-100gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-100gs.js new file mode 100644 index 000000000..b78f81660 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-100gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-100gs.js + * @description Strict Mode - checking 'this' (strict function passed as arg to String.prototype.replace from non-strict context) + * @onlyStrict + */ +var x = 3; + +function f() { + "use strict"; + x = this; + return "a"; +} +if (("ab".replace("b", f)!=="aa") || (x!==undefined)) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-101-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-101-s.js new file mode 100644 index 000000000..bb7c2c7a9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-101-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-101-s.js + * @description Strict Mode - checking 'this' (non-strict function passed as arg to String.prototype.replace from strict context) + * @noStrict + */ + +function testcase() { +var x = 3; + +function f() { + x = this; + return "a"; +} + +return (function() {"use strict"; return "ab".replace("b", f)==="aa";}()) && (x===fnGlobalObject()); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-101gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-101gs.js new file mode 100644 index 000000000..bc6eba526 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-101gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-101gs.js + * @description Strict Mode - checking 'this' (non-strict function passed as arg to String.prototype.replace from strict context) + * @noStrict + */ +var x = 3; + +function f() { + x = this; + return "a"; +} + +if ( (!(function() {"use strict"; return "ab".replace("b", f)==="aa";}())) || (x!==fnGlobalObject())) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-102-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-102-s.js new file mode 100644 index 000000000..0a11390ef --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-102-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-102-s.js + * @description Strict Mode - checking 'this' (strict anonymous function passed as arg to String.prototype.replace from non-strict context) + * @onlyStrict + */ + +function testcase() { +var x = 3; + +return ("ab".replace("b", (function () { + "use strict"; + return function () { + x = this; + return "a"; + } + })())==="aa") && (x===undefined); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-102gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-102gs.js new file mode 100644 index 000000000..90505a2fd --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-102gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-102gs.js + * @description Strict Mode - checking 'this' (strict anonymous function passed as arg to String.prototype.replace from non-strict context) + * @onlyStrict + */ +var x = 3; +if ( ("ab".replace("b", (function () { + "use strict"; + return function () { + x = this; + return "a"; + } + })())!=="aa") || (x!==undefined)) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-103.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-103.js new file mode 100644 index 000000000..a0bc90873 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-103.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-103.js + * @description Non strict mode should ToObject thisArg if not an object. Abstract equality operator should succeed. + */ + +function testcase(){ + Object.defineProperty(Object.prototype, "x", { get: function () { return this; } }); + if((5).x == 0) return false; + if(!((5).x == 5)) return false; + return true; +} + +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-104.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-104.js new file mode 100644 index 000000000..42f89deb3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-104.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * + * @path ch10/10.4/10.4.3/10.4.3-1-104.js + * @onlyStrict + * @description Strict mode should not ToObject thisArg if not an object. Strict equality operator should succeed. + */ + + +function testcase(){ + Object.defineProperty(Object.prototype, "x", { get: function () { "use strict"; return this; } }); + if(!((5).x === 5)) return false; + return true; +} + +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-105.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-105.js new file mode 100644 index 000000000..a66b850cf --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-105.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * Created based on feedback in https://bugs.ecmascript.org/show_bug.cgi?id=333 + * + * @path ch10/10.4/10.4.3/10.4.3-1-105.js + * @description Non strict mode should ToObject thisArg if not an object. Return type should be object and strict equality should fail. + */ + + function testcase(){ + Object.defineProperty(Object.prototype, "x", { get: function () { return this; } }); + if((5).x === 5) return false; + if(!(typeof (5).x === "object")) return false; + return true; +} + +runTestCase(testcase); + diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-106.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-106.js new file mode 100644 index 000000000..36afbda2a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-106.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * Created based on feedback in https://bugs.ecmascript.org/show_bug.cgi?id=333 + * + * @path ch10/10.4/10.4.3/10.4.3-1-106.js + * @onlyStrict + * @description Strict mode should not ToObject thisArg if not an object. Return type should be 'number'. + */ + + function testcase(){ + Object.defineProperty(Object.prototype, "x", { get: function () { "use strict"; return this; } }); + if(!(typeof (5).x === "number")) return false; + return true; +} + +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-10gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-10gs.js new file mode 100644 index 000000000..74ee475ae --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-10gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-10gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression includes strict directive prologue) + * @onlyStrict + */ + +var f = function () { + "use strict"; + return typeof this; +} +if (f() !== "undefined") { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-11-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-11-s.js new file mode 100644 index 000000000..8f7813338 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-11-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-11-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +return (function () { + return typeof this; +})() === "undefined"; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-11gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-11gs.js new file mode 100644 index 000000000..3be7db62a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-11gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-11gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression defined within strict mode) + * @onlyStrict + */ + +"use strict"; +if ((function () { + return typeof this; +})() !== "undefined") { + throw "'this' had incorrect value!"; +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-12-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-12-s.js new file mode 100644 index 000000000..a88b4c03f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-12-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-12-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +return (function () { + "use strict"; + return typeof this; +})() === "undefined"; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-12gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-12gs.js new file mode 100644 index 000000000..0bb4a9781 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-12gs.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-12gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression includes strict directive prologue) + * @onlyStrict + */ + +if ((function () { + "use strict"; + return typeof this; +})() !== "undefined") { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-13-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-13-s.js new file mode 100644 index 000000000..c4ebc9d39 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-13-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-13-s.js + * @description Strict Mode - checking 'this' (Function constructor defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var f = Function("return typeof this;"); +return f() !== "undefined"; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-13gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-13gs.js new file mode 100644 index 000000000..d6c4d550a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-13gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-13gs.js + * @description Strict - checking 'this' from a global scope (Function constructor defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var f = Function("return typeof this;"); +if (f() === "undefined") { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-14-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-14-s.js new file mode 100644 index 000000000..fe45b6931 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-14-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-14-s.js + * @description Strict Mode - checking 'this' (Function constructor includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var f = Function("\"use strict\";\nreturn typeof this;"); +return f() === "undefined"; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-14gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-14gs.js new file mode 100644 index 000000000..cec5e66d8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-14gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-14gs.js + * @description Strict - checking 'this' from a global scope (Function constructor includes strict directive prologue) + * @onlyStrict + */ + +var f = Function("\"use strict\";\nreturn typeof this;"); +if (f() !== "undefined") { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-15-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-15-s.js new file mode 100644 index 000000000..961d55b6d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-15-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-15-s.js + * @description Strict Mode - checking 'this' (New'ed Function constructor defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var f = new Function("return typeof this;"); +return f() !== "undefined"; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-15gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-15gs.js new file mode 100644 index 000000000..26d75fa64 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-15gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-15gs.js + * @description Strict - checking 'this' from a global scope (New'ed Function constructor defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var f = new Function("return typeof this;"); +if (f() === "undefined") { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-16-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-16-s.js new file mode 100644 index 000000000..6167f4c4a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-16-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-16-s.js + * @description Strict Mode - checking 'this' (New'ed Function constructor includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var f = new Function("\"use strict\";\nreturn typeof this;"); +return f() === "undefined"; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-16gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-16gs.js new file mode 100644 index 000000000..b7a2287e7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-16gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-16gs.js + * @description Strict - checking 'this' from a global scope (New'ed Function constructor includes strict directive prologue) + * @onlyStrict + */ + +var f = new Function("\"use strict\";\nreturn typeof this;"); +if (f() !== "undefined") { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-17-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-17-s.js new file mode 100644 index 000000000..4d2caf063 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-17-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-17-s.js + * @description Strict Mode - checking 'this' (eval used within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +return (eval("typeof this") === "undefined") && (eval("this") !== fnGlobalObject()); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-17gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-17gs.js new file mode 100644 index 000000000..f583c6e89 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-17gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-17gs.js + * @description Strict - checking 'this' from a global scope (eval used within strict mode) + * @onlyStrict + */ + +"use strict"; +if (eval("this") !== fnGlobalObject()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-18gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-18gs.js new file mode 100644 index 000000000..e1d35e497 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-18gs.js @@ -0,0 +1,14 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-18gs.js + * @description Strict - checking 'this' from a global scope (eval includes strict directive prologue) + * @onlyStrict + */ + +if (eval("\"use strict\";\nthis") !== fnGlobalObject()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-19-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-19-s.js new file mode 100644 index 000000000..c2d412838 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-19-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-19-s.js + * @description Strict Mode - checking 'this' (indirect eval used within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var my_eval = eval; +return my_eval("this") === fnGlobalObject(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-19gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-19gs.js new file mode 100644 index 000000000..2d1c35edc --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-19gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-19gs.js + * @description Strict - checking 'this' from a global scope (indirect eval used within strict mode) + * @onlyStrict + */ + +"use strict"; +var my_eval = eval; +if (my_eval("this") !== fnGlobalObject()) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-2-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-2-s.js new file mode 100644 index 000000000..0efe7fd65 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-2-s.js @@ -0,0 +1,29 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-2-s.js + * @description this is not coerced to an object in strict mode (string) + * @noStrict + */ + + +function testcase() { + + function foo() + { + 'use strict'; + return typeof(this); + } + + function bar() + { + return typeof(this); + } + + + return foo.call('1') === 'string' && bar.call('1') === 'object'; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-20-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-20-s.js new file mode 100644 index 000000000..869bc53e4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-20-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-20-s.js + * @description Strict Mode - checking 'this' (indirect eval includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var my_eval = eval; +return my_eval("\"use strict\";\nthis") === fnGlobalObject(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-20gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-20gs.js new file mode 100644 index 000000000..48544cb0e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-20gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-20gs.js + * @description Strict - checking 'this' from a global scope (indirect eval includes strict directive prologue) + * @onlyStrict + */ + +var my_eval = eval; +if (my_eval("\"use strict\";\nthis") !== fnGlobalObject() ) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-21-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-21-s.js new file mode 100644 index 000000000..915f54ce8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-21-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-21-s.js + * @description Strict Mode - checking 'this' (New'ed object from FunctionDeclaration defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +function f() { + return this; +} +return ( (new f())!==fnGlobalObject()) && (typeof (new f()) !== "undefined"); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-21gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-21gs.js new file mode 100644 index 000000000..b12634049 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-21gs.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-21gs.js + * @description Strict - checking 'this' from a global scope (New'ed object from FunctionDeclaration defined within strict mode) + * @onlyStrict + */ + +"use strict"; +function f() { + return this; +} +if (((new f()) === fnGlobalObject()) || (typeof (new f()) === "undefined")) { + throw "'this' had incorrect value!"; +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-22-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-22-s.js new file mode 100644 index 000000000..55d66e60c --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-22-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-22-s.js + * @description Strict Mode - checking 'this' (New'ed object from FunctionDeclaration includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +function f() { + "use strict"; + return this; +} +return ( (new f())!==fnGlobalObject()) && (typeof (new f()) !== "undefined"); + +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-22gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-22gs.js new file mode 100644 index 000000000..1abde0e2f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-22gs.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-22gs.js + * @description Strict - checking 'this' from a global scope (New'ed object from FunctionDeclaration includes strict directive prologue) + * @onlyStrict + */ + +function f() { + "use strict"; + return this; +} +if (((new f()) === fnGlobalObject()) || (typeof (new f()) === "undefined")) { + throw "'this' had incorrect value!"; +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-23-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-23-s.js new file mode 100644 index 000000000..b2c40be4f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-23-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-23-s.js + * @description Strict Mode - checking 'this' (New'ed object from FunctionExpression defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var f = function () { + return this; +} +return ( (new f())!==fnGlobalObject()) && (typeof (new f()) !== "undefined"); + +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-23gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-23gs.js new file mode 100644 index 000000000..4aab84291 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-23gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-23gs.js + * @description Strict - checking 'this' from a global scope (New'ed object from FunctionExpression defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var f = function () { + return this; +} +if (((new f()) === fnGlobalObject()) || (typeof (new f()) === "undefined")) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-24-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-24-s.js new file mode 100644 index 000000000..3499abe4d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-24-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-24-s.js + * @description Strict Mode - checking 'this' (New'ed object from FunctionExpression includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var f = function () { + "use strict"; + return this; +} +return ( (new f())!==fnGlobalObject()) && (typeof (new f()) !== "undefined"); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-24gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-24gs.js new file mode 100644 index 000000000..38d5e1490 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-24gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-24gs.js + * @description Strict - checking 'this' from a global scope (New'ed object from FunctionExpression includes strict directive prologue) + * @onlyStrict + */ + +var f = function () { + "use strict"; + return this; +} +if (((new f()) === fnGlobalObject()) || (typeof (new f()) === "undefined")) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-25-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-25-s.js new file mode 100644 index 000000000..138802f64 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-25-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-25-s.js + * @description Strict Mode - checking 'this' (New'ed object from Anonymous FunctionExpression defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var obj = new (function () { + return this; +}); +return (obj !== fnGlobalObject()) && ((typeof obj) !== "undefined"); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-25gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-25gs.js new file mode 100644 index 000000000..30ac917cb --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-25gs.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-25gs.js + * @description Strict - checking 'this' from a global scope (New'ed object from Anonymous FunctionExpression defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var obj = new (function () { + return this; +}); +if ((obj === fnGlobalObject()) || (typeof obj === "undefined")) { + throw "'this' had incorrect value!"; +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-26-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-26-s.js new file mode 100644 index 000000000..a015f4082 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-26-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-26-s.js + * @description Strict Mode - checking 'this' (New'ed object from Anonymous FunctionExpression includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var obj = new (function () { + "use strict"; + return this; +}); +return (obj !== fnGlobalObject()) && ((typeof obj) !== "undefined"); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-26gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-26gs.js new file mode 100644 index 000000000..e19bce342 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-26gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-26gs.js + * @description Strict - checking 'this' from a global scope (New'ed object from Anonymous FunctionExpression includes strict directive prologue) + * @onlyStrict + */ + +var obj = new (function () { + "use strict"; + return this; +}); +if ((obj === fnGlobalObject()) || (typeof obj === "undefined")) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-27-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-27-s.js new file mode 100644 index 000000000..54eda820f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-27-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-27-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration defined within a FunctionDeclaration inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +function f1() { + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-27gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-27gs.js new file mode 100644 index 000000000..0cb1cb4f2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-27gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-27gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration defined within a FunctionDeclaration inside strict mode) + * @onlyStrict + */ + +"use strict"; +function f1() { + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-28-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-28-s.js new file mode 100644 index 000000000..c2a5578a8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-28-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-28-s.js + * @description Strict Mode - checking 'this' (FunctionExpression defined within a FunctionDeclaration inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +function f1() { + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-28gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-28gs.js new file mode 100644 index 000000000..663a18e00 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-28gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-28gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression defined within a FunctionDeclaration inside strict mode) + * @onlyStrict + */ + +"use strict"; +function f1() { + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-29-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-29-s.js new file mode 100644 index 000000000..87ea431d7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-29-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-29-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression defined within a FunctionDeclaration inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +function f1() { + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-29gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-29gs.js new file mode 100644 index 000000000..416f1b4f3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-29gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-29gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression defined within a FunctionDeclaration inside strict mode) + * @onlyStrict + */ + +"use strict"; +function f1() { + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-3-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-3-s.js new file mode 100644 index 000000000..19bafdcff --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-3-s.js @@ -0,0 +1,27 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-3-s.js + * @description this is not coerced to an object in strict mode (undefined) + * @noStrict + */ + + +function testcase() { + + function foo() + { + 'use strict'; + return typeof(this); + } + + function bar() + { + return typeof(this); + } + return foo.call(undefined) === 'undefined' && bar.call() === 'object'; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-30-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-30-s.js new file mode 100644 index 000000000..b4085931b --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-30-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-30-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration defined within a FunctionExpression inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var f1 = function () { + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-30gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-30gs.js new file mode 100644 index 000000000..ab3c6222d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-30gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-30gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration defined within a FunctionExpression inside strict mode) + * @onlyStrict + */ + +"use strict"; +var f1 = function () { + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-31-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-31-s.js new file mode 100644 index 000000000..dc32ca19e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-31-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-31-s.js + * @description Strict Mode - checking 'this' (FunctionExpression defined within a FunctionExpression inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var f1 = function () { + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-31gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-31gs.js new file mode 100644 index 000000000..1bbb2d161 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-31gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-31gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression defined within a FunctionExpression inside strict mode) + * @onlyStrict + */ + +"use strict"; +var f1 = function () { + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-32-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-32-s.js new file mode 100644 index 000000000..4ba988920 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-32-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-32-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression defined within a FunctionExpression inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var f1 = function () { + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-32gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-32gs.js new file mode 100644 index 000000000..1cd2ad05a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-32gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-32gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression defined within a FunctionExpression inside strict mode) + * @onlyStrict + */ + +"use strict"; +var f1 = function () { + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-33-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-33-s.js new file mode 100644 index 000000000..6c4d66e2e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-33-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-33-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration defined within an Anonymous FunctionExpression inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +return (function () { + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-33gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-33gs.js new file mode 100644 index 000000000..c288566cb --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-33gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-33gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration defined within an Anonymous FunctionExpression inside strict mode) + * @onlyStrict + */ + +"use strict"; +if (! ((function () { + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +})())) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-34-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-34-s.js new file mode 100644 index 000000000..9cf25b53d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-34-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-34-s.js + * @description Strict Mode - checking 'this' (FunctionExpression defined within an Anonymous FunctionExpression inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +return (function () { + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-34gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-34gs.js new file mode 100644 index 000000000..72980aa41 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-34gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-34gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression defined within an Anonymous FunctionExpression inside strict mode) + * @onlyStrict + */ + +"use strict"; +if (! ((function () { + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +})())) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-35-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-35-s.js new file mode 100644 index 000000000..8f7abb36f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-35-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-35-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression defined within an Anonymous FunctionExpression inside strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +return (function () { + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-35gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-35gs.js new file mode 100644 index 000000000..ecee18fe3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-35gs.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-35gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression defined within an Anonymous FunctionExpression inside strict mode) + * @onlyStrict + */ + +"use strict"; +if (! ((function () { + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +})())) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-36-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-36-s.js new file mode 100644 index 000000000..08bea7cc4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-36-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-36-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration defined within a FunctionDeclaration with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +function f1() { + "use strict"; + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-36gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-36gs.js new file mode 100644 index 000000000..88fab9f20 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-36gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-36gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration defined within a FunctionDeclaration with a strict directive prologue) + * @onlyStrict + */ + +function f1() { + "use strict"; + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-37-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-37-s.js new file mode 100644 index 000000000..93e7fde28 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-37-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-37-s.js + * @description Strict Mode - checking 'this' (FunctionExpression defined within a FunctionDeclaration with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +function f1() { + "use strict"; + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-37gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-37gs.js new file mode 100644 index 000000000..795b6032d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-37gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-37gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression defined within a FunctionDeclaration with a strict directive prologue) + * @onlyStrict + */ + +function f1() { + "use strict"; + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-38-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-38-s.js new file mode 100644 index 000000000..f496d4ed0 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-38-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-38-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression defined within a FunctionDeclaration with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +function f1() { + "use strict"; + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-38gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-38gs.js new file mode 100644 index 000000000..1c00b742e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-38gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-38gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression defined within a FunctionDeclaration with a strict directive prologue) + * @onlyStrict + */ + +function f1() { + "use strict"; + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-39-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-39-s.js new file mode 100644 index 000000000..22478bc26 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-39-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-39-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration defined within a FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var f1 = function () { + "use strict"; + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-39gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-39gs.js new file mode 100644 index 000000000..7ec3adf91 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-39gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-39gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration defined within a FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +var f1 = function () { + "use strict"; + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-4-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-4-s.js new file mode 100644 index 000000000..28bd8f059 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-4-s.js @@ -0,0 +1,29 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-4-s.js + * @description this is not coerced to an object in strict mode (boolean) + * @noStrict + */ + + +function testcase() { + + function foo() + { + 'use strict'; + return typeof(this); + } + + function bar() + { + return typeof(this); + } + + + return foo.call(true) === 'boolean' && bar.call(true) === 'object'; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-40-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-40-s.js new file mode 100644 index 000000000..b90817f63 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-40-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-40-s.js + * @description Strict Mode - checking 'this' (FunctionExpression defined within a FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var f1 = function () { + "use strict"; + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-40gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-40gs.js new file mode 100644 index 000000000..2d8fbf0ba --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-40gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-40gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression defined within a FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +var f1 = function () { + "use strict"; + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-41-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-41-s.js new file mode 100644 index 000000000..48495e392 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-41-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-41-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression defined within a FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var f1 = function () { + "use strict"; + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-41gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-41gs.js new file mode 100644 index 000000000..43cba61c8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-41gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-41gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression defined within a FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +var f1 = function () { + "use strict"; + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-42-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-42-s.js new file mode 100644 index 000000000..c4f705857 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-42-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-42-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration defined within an Anonymous FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +return (function () { + "use strict"; + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-42gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-42gs.js new file mode 100644 index 000000000..b1802bf16 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-42gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-42gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration defined within an Anonymous FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +if (! ((function () { + "use strict"; + function f() { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +})())) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-43-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-43-s.js new file mode 100644 index 000000000..6575e56b9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-43-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-43-s.js + * @description Strict Mode - checking 'this' (FunctionExpression defined within an Anonymous FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +return (function () { + "use strict"; + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-43gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-43gs.js new file mode 100644 index 000000000..0da4b7871 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-43gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-43gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression defined within an Anonymous FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +if (! ((function () { + "use strict"; + var f = function () { + return typeof this; + } + return (f()==="undefined") && ((typeof this)==="undefined"); +})())) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-44-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-44-s.js new file mode 100644 index 000000000..b7ac11d8d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-44-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-44-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression defined within an Anonymous FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +function testcase() { +return (function () { + "use strict"; + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-44gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-44gs.js new file mode 100644 index 000000000..2300e4acb --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-44gs.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-44gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression defined within an Anonymous FunctionExpression with a strict directive prologue) + * @onlyStrict + */ + +if (! ((function () { + "use strict"; + return ((function () { + return typeof this; + })()==="undefined") && ((typeof this)==="undefined"); +})())) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-45-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-45-s.js new file mode 100644 index 000000000..e23f9fef0 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-45-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-45-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration with a strict directive prologue defined within a FunctionDeclaration) + * @noStrict + */ + +function testcase() { +function f1() { + function f() { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-45gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-45gs.js new file mode 100644 index 000000000..ce99d6574 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-45gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-45gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration with a strict directive prologue defined within a FunctionDeclaration) + * @noStrict + */ + +function f1() { + function f() { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-46-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-46-s.js new file mode 100644 index 000000000..5945b2b21 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-46-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-46-s.js + * @description Strict Mode - checking 'this' (FunctionExpression with a strict directive prologue defined within a FunctionDeclaration) + * @noStrict + */ + +function testcase() { +function f1() { + var f = function () { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-46gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-46gs.js new file mode 100644 index 000000000..3d0ddd895 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-46gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-46gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression with a strict directive prologue defined within a FunctionDeclaration) + * @noStrict + */ + +function f1() { + var f = function () { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-47-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-47-s.js new file mode 100644 index 000000000..6a5fe9d40 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-47-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-47-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression with a strict directive prologue defined within a FunctionDeclaration) + * @noStrict + */ + +function testcase() { +function f1() { + return ((function () { + "use strict"; + return typeof this; + })()==="undefined") && (this===fnGlobalObject()); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-47gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-47gs.js new file mode 100644 index 000000000..78884f8c6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-47gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-47gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression with a strict directive prologue defined within a FunctionDeclaration) + * @noStrict + */ + +function f1() { + return ((function () { + "use strict"; + return typeof this; + })()==="undefined") && (this===fnGlobalObject()); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-48-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-48-s.js new file mode 100644 index 000000000..3c4d49af4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-48-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-48-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration with a strict directive prologue defined within a FunctionExpression) + * @noStrict + */ + +function testcase() { +var f1 = function () { + function f() { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-48gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-48gs.js new file mode 100644 index 000000000..b6d619176 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-48gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-48gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration with a strict directive prologue defined within a FunctionExpression) + * @noStrict + */ + +var f1 = function () { + function f() { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-49-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-49-s.js new file mode 100644 index 000000000..3ae616eaa --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-49-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-49-s.js + * @description Strict Mode - checking 'this' (FunctionExpression with a strict directive prologue defined within a FunctionExpression) + * @noStrict + */ + +function testcase() { +var f1 = function () { + var f = function () { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-49gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-49gs.js new file mode 100644 index 000000000..d6aee3a91 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-49gs.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-49gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression with a strict directive prologue defined within a FunctionExpression) + * @noStrict + */ + +var f1 = function () { + var f = function () { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-5-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-5-s.js new file mode 100644 index 000000000..5d64cea6b --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-5-s.js @@ -0,0 +1,32 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-5-s.js + * @description this is not coerced to an object in strict mode (function) + * @onlyStrict + */ + + +function testcase() { + + function foo() + { + 'use strict'; + return typeof(this); + } + + function bar() + { + return typeof(this); + } + + function foobar() + { + } + + return foo.call(foobar) === 'function' && bar.call(foobar) === 'function'; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-50-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-50-s.js new file mode 100644 index 000000000..ad273ecb1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-50-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-50-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression with a strict directive prologue defined within a FunctionExpression) + * @noStrict + */ + +function testcase() { +var f1 = function () { + return ((function () { + "use strict"; + return typeof this; + })()==="undefined") && (this===fnGlobalObject()); +} +return f1(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-50gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-50gs.js new file mode 100644 index 000000000..21cd879ef --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-50gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-50gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression with a strict directive prologue defined within a FunctionExpression) + * @noStrict + */ + +var f1 = function () { + return ((function () { + "use strict"; + return typeof this; + })()==="undefined") && (this===fnGlobalObject()); +} +if (! f1()) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-51-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-51-s.js new file mode 100644 index 000000000..e8935366e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-51-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-51-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration with a strict directive prologue defined within an Anonymous FunctionExpression) + * @noStrict + */ + +function testcase() { +return (function () { + function f() { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-51gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-51gs.js new file mode 100644 index 000000000..52f8e35a6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-51gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-51gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration with a strict directive prologue defined within an Anonymous FunctionExpression) + * @noStrict + */ + +if (! ((function () { + function f() { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +})())) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-52-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-52-s.js new file mode 100644 index 000000000..b2c3a0082 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-52-s.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-52-s.js + * @description Strict Mode - checking 'this' (FunctionExpression with a strict directive prologue defined within an Anonymous FunctionExpression) + * @noStrict + */ + +function testcase() { +return (function () { + var f = function () { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-52gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-52gs.js new file mode 100644 index 000000000..cc617750d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-52gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-52gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression with a strict directive prologue defined within an Anonymous FunctionExpression) + * @noStrict + */ + +if (! ((function () { + var f = function () { + "use strict"; + return typeof this; + } + return (f()==="undefined") && (this===fnGlobalObject()); +})())) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-53-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-53-s.js new file mode 100644 index 000000000..2324bf44f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-53-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-53-s.js + * @description Strict Mode - checking 'this' (Anonymous FunctionExpression with a strict directive prologue defined within an Anonymous FunctionExpression) + * @noStrict + */ + +function testcase() { +return (function () { + return ((function () { + "use strict"; + return typeof this; + })()==="undefined") && (this===fnGlobalObject()); +})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-53gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-53gs.js new file mode 100644 index 000000000..0c6581f2e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-53gs.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-53gs.js + * @description Strict - checking 'this' from a global scope (Anonymous FunctionExpression with a strict directive prologue defined within an Anonymous FunctionExpression) + * @noStrict + */ + +if (! ((function () { + return ((function () { + "use strict"; + return typeof this; + })()==="undefined") && (this===fnGlobalObject()); +})())) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-54-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-54-s.js new file mode 100644 index 000000000..ac481d610 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-54-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-54-s.js + * @description Strict Mode - checking 'this' (Literal getter defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var o = { get foo() { return this; } } +return o.foo===o; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-54gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-54gs.js new file mode 100644 index 000000000..571ad634e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-54gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-54gs.js + * @description Strict - checking 'this' from a global scope (Literal getter defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var o = { get foo() { return this; } } +if (o.foo!==o) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-55-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-55-s.js new file mode 100644 index 000000000..49acc2d11 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-55-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-55-s.js + * @description Strict Mode - checking 'this' (Literal getter includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var o = { get foo() { "use strict"; return this; } } +return o.foo===o; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-55gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-55gs.js new file mode 100644 index 000000000..ab3ccbbc5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-55gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-55gs.js + * @description Strict - checking 'this' from a global scope (Literal getter includes strict directive prologue) + * @onlyStrict + */ + +var o = { get foo() { "use strict"; return this; } } +if (o.foo!==o) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-56-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-56-s.js new file mode 100644 index 000000000..1a492c462 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-56-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-56-s.js + * @description Strict Mode - checking 'this' (Literal setter defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var x = 2; +var o = { set foo(stuff) { x=this; } } +o.foo = 3; +return x===o; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-56gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-56gs.js new file mode 100644 index 000000000..7ea7c7a3f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-56gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-56gs.js + * @description Strict - checking 'this' from a global scope (Literal setter defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var x = 2; +var o = { set foo(stuff) { x=this; } } +o.foo = 3; +if (x!==o) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-57-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-57-s.js new file mode 100644 index 000000000..bcd4ef62c --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-57-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-57-s.js + * @description Strict Mode - checking 'this' (Literal setter includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var x = 2; +var o = { set foo(stuff) { "use strict"; x=this; } } +o.foo = 3; +return x===o; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-57gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-57gs.js new file mode 100644 index 000000000..e59df3357 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-57gs.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-57gs.js + * @description Strict - checking 'this' from a global scope (Literal setter includes strict directive prologue) + * @onlyStrict + */ + +var x = 2; +var o = { set foo(stuff) { "use strict"; x=this; } } +o.foo = 3; +if (x!==o) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-58-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-58-s.js new file mode 100644 index 000000000..964f8d435 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-58-s.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-58-s.js + * @description Strict Mode - checking 'this' (Injected getter defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var o = {}; +Object.defineProperty(o, "foo", { get: function() { return this; } }); +return o.foo===o; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-58gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-58gs.js new file mode 100644 index 000000000..166e44079 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-58gs.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-58gs.js + * @description Strict - checking 'this' from a global scope (Injected getter defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var o = {}; +Object.defineProperty(o, "foo", { get : function() { return this; } }); +if (o.foo!==o) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-59-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-59-s.js new file mode 100644 index 000000000..7d0afddf5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-59-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-59-s.js + * @description Strict Mode - checking 'this' (Injected getter includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var o = {}; +Object.defineProperty(o, "foo", { get: function() { "use strict"; return this; } }); +return o.foo===o; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-59gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-59gs.js new file mode 100644 index 000000000..09e1d0648 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-59gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-59gs.js + * @description Strict - checking 'this' from a global scope (Injected getter includes strict directive prologue) + * @onlyStrict + */ + +var o = {}; +Object.defineProperty(o, "foo", { get: function() { "use strict"; return this; } }); +if (o.foo!==o) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-60-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-60-s.js new file mode 100644 index 000000000..1bd803bee --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-60-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-60-s.js + * @description Strict Mode - checking 'this' (Injected setter defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var o = {}; +var x = 2; +Object.defineProperty(o, "foo", { set: function(stuff) { x=this; } }); +o.foo = 3; +return x===o; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-60gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-60gs.js new file mode 100644 index 000000000..09053dbd1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-60gs.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-60gs.js + * @description Strict - checking 'this' from a global scope (Injected setter defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var o = {}; +var x = 2; +Object.defineProperty(o, "foo", { set: function(stuff) { x=this; } }); +o.foo = 3; +if (x!==o) { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-61-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-61-s.js new file mode 100644 index 000000000..23586b250 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-61-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-61-s.js + * @description Strict Mode - checking 'this' (Injected setter includes strict directive prologue) + * @onlyStrict + */ + +function testcase() { +var o = {}; +var x = 2; +Object.defineProperty(o, "foo", { set: function(stuff) { "use strict"; x=this; } }); +o.foo = 3; +return x===o; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-61gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-61gs.js new file mode 100644 index 000000000..2d31c32d8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-61gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-61gs.js + * @description Strict - checking 'this' from a global scope (Injected setter includes strict directive prologue) + * @onlyStrict + */ + +var o = {}; +var x = 2; +Object.defineProperty(o, "foo", { set: function(stuff) { "use strict"; x=this; } }); +o.foo = 3; +if (x!==o) { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-62-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-62-s.js new file mode 100644 index 000000000..a2e3c0bb8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-62-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-62-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by non-strict function declaration) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this;}; +function foo() { return f();} +return foo()===undefined; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-62gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-62gs.js new file mode 100644 index 000000000..9cd2ae0e7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-62gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-62gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by non-strict function declaration) + * @onlyStrict + */ + +function f() { "use strict"; return this;}; +function foo() { return f();} +if (foo()!==undefined){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-63-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-63-s.js new file mode 100644 index 000000000..5b93d280b --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-63-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-63-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by non-strict eval) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===undefined;}; +return eval("f();"); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-63gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-63gs.js new file mode 100644 index 000000000..07f7a9cee --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-63gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-63gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by non-strict eval) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! eval("f();")){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-64-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-64-s.js new file mode 100644 index 000000000..ddb042449 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-64-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-64-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by non-strict Function constructor) + * @onlyStrict + */ + +function testcase() { +fnGlobalObject().f = function() { "use strict"; return this===undefined;}; +return Function("return f();")(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-64gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-64gs.js new file mode 100644 index 000000000..6877c8341 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-64gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-64gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by non-strict Function constructor) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! (Function("return f();")())){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-65-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-65-s.js new file mode 100644 index 000000000..5b0f20a65 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-65-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-65-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by non-strict new'ed Function constructor) + * @onlyStrict + */ + +function testcase() { +fnGlobalObject().f = function() { "use strict"; return this===undefined;}; +return (new Function("return f();"))(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-65gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-65gs.js new file mode 100644 index 000000000..567a12360 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-65gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-65gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by non-strict new'ed Function constructor) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! ( (new Function("return f();")) () )){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-66-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-66-s.js new file mode 100644 index 000000000..3b4401827 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-66-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-66-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.apply()) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===undefined;}; +return f.apply(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-66gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-66gs.js new file mode 100644 index 000000000..29a609b7a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-66gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-66gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.apply()) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! f.apply()){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-67-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-67-s.js new file mode 100644 index 000000000..baf57dc0c --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-67-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-67-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.apply(null)) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===null;}; +return f.apply(null); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-67gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-67gs.js new file mode 100644 index 000000000..9122b9fde --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-67gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-67gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.apply(null)) + * @onlyStrict + */ + +function f() { "use strict"; return this===null;}; +if (! f.apply(null)){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-68-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-68-s.js new file mode 100644 index 000000000..10a5294e1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-68-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-68-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.apply(undefined)) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===undefined;}; +return f.apply(undefined); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-68gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-68gs.js new file mode 100644 index 000000000..5bfeee3f0 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-68gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-68gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.apply(undefined)) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! f.apply(undefined)){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-69-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-69-s.js new file mode 100644 index 000000000..8db3b94ce --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-69-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-69-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.apply(someObject)) + * @onlyStrict + */ + +function testcase() { +var o = {}; +function f() { "use strict"; return this===o;}; +return f.apply(o); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-69gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-69gs.js new file mode 100644 index 000000000..f32b45575 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-69gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-69gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.apply(someObject)) + * @onlyStrict + */ + +var o = {}; +function f() { "use strict"; return this===o;}; +if (! f.apply(o)){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-7-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-7-s.js new file mode 100644 index 000000000..ae370f766 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-7-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-7-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration defined within strict mode) + * @onlyStrict + */ + + +function testcase() { +"use strict"; +function f() { + return typeof this; +} +return f() === "undefined"; +} +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-70-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-70-s.js new file mode 100644 index 000000000..d1bf918ee --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-70-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-70-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.apply(globalObject)) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this;}; +return f.apply(fnGlobalObject()) === fnGlobalObject(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-70gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-70gs.js new file mode 100644 index 000000000..0044b8afd --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-70gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-70gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.apply(globalObject)) + * @onlyStrict + */ + +function f() { "use strict"; return this;}; +if (f.apply(fnGlobalObject()) !== fnGlobalObject()){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-71-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-71-s.js new file mode 100644 index 000000000..5fe5dcba3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-71-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-71-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.call()) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===undefined;}; +return f.call(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-71gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-71gs.js new file mode 100644 index 000000000..c978be9ad --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-71gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-71gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.call()) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! f.call()){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-72-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-72-s.js new file mode 100644 index 000000000..b9c669291 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-72-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-72-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.call(null)) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===null;}; +return f.call(null); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-72gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-72gs.js new file mode 100644 index 000000000..49ca243d1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-72gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-72gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.call(null)) + * @onlyStrict + */ + +function f() { "use strict"; return this===null;}; +if (! f.call(null)){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-73-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-73-s.js new file mode 100644 index 000000000..e04b5d7be --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-73-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-73-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.call(undefined)) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===undefined;}; +return f.call(undefined); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-73gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-73gs.js new file mode 100644 index 000000000..10a3176db --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-73gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-73gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.call(undefined)) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! f.call(undefined)){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-74-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-74-s.js new file mode 100644 index 000000000..7e2d746e3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-74-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-74-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.call(someObject)) + * @onlyStrict + */ + +function testcase() { +var o = {}; +function f() { "use strict"; return this===o;}; +return f.call(o); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-74gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-74gs.js new file mode 100644 index 000000000..27a73d67f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-74gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-74gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.call(someObject)) + * @onlyStrict + */ + +var o = {}; +function f() { "use strict"; return this===o;}; +if (! f.call(o)){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-75-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-75-s.js new file mode 100644 index 000000000..fa8f4d4b0 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-75-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-75-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.call(globalObject)) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this;}; +return f.call(fnGlobalObject()) === fnGlobalObject(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-75gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-75gs.js new file mode 100644 index 000000000..3df699177 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-75gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-75gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.call(globalObject)) + * @onlyStrict + */ + +function f() { "use strict"; return this;}; +if (f.call(fnGlobalObject()) !== fnGlobalObject()){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-76-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-76-s.js new file mode 100644 index 000000000..7918f0dfa --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-76-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-76-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.bind()()) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===undefined;}; +return f.bind()(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-76gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-76gs.js new file mode 100644 index 000000000..f61d0e324 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-76gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-76gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.bind()()) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! (f.bind()())){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-77-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-77-s.js new file mode 100644 index 000000000..fb5614dd9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-77-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-77-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.bind(null)()) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===null;}; +return f.bind(null)(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-77gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-77gs.js new file mode 100644 index 000000000..51d38c398 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-77gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-77gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.bind(null)()) + * @onlyStrict + */ + +function f() { "use strict"; return this===null;}; +if (! (f.bind(null)())){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-78-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-78-s.js new file mode 100644 index 000000000..3d50f279c --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-78-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-78-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.bind(undefined)()) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this===undefined;}; +return f.bind(undefined)(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-78gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-78gs.js new file mode 100644 index 000000000..8d67642fa --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-78gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-78gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.bind(undefined)()) + * @onlyStrict + */ + +function f() { "use strict"; return this===undefined;}; +if (! (f.bind(undefined)())){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-79-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-79-s.js new file mode 100644 index 000000000..5dace0a45 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-79-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-79-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.bind(someObject)()) + * @onlyStrict + */ + +function testcase() { +var o = {}; +function f() { "use strict"; return this===o;}; +return f.bind(o)(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-79gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-79gs.js new file mode 100644 index 000000000..a347c004a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-79gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-79gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.bind(someObject)()) + * @onlyStrict + */ + +var o = {}; +function f() { "use strict"; return this===o;}; +if (! (f.bind(o)())){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-7gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-7gs.js new file mode 100644 index 000000000..23b1c0583 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-7gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-7gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration defined within strict mode) + * @onlyStrict + */ + +"use strict"; +function f() { + return typeof this; +} +if (f() !== "undefined") { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-8-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-8-s.js new file mode 100644 index 000000000..7d6beaa1a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-8-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-8-s.js + * @description Strict Mode - checking 'this' (FunctionDeclaration includes strict directive prologue) + * @onlyStrict + */ + + +function testcase() { +function f() { + "use strict"; + return typeof this; +} +return f() === "undefined"; +} +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-80-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-80-s.js new file mode 100644 index 000000000..86951b61a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-80-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-80-s.js + * @description Strict Mode - checking 'this' (strict function declaration called by Function.prototype.bind(globalObject)()) + * @onlyStrict + */ + +function testcase() { +function f() { "use strict"; return this;}; +return f.bind(fnGlobalObject())() === fnGlobalObject(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-80gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-80gs.js new file mode 100644 index 000000000..e3ed02e6a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-80gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-80gs.js + * @description Strict - checking 'this' from a global scope (strict function declaration called by Function.prototype.bind(globalObject)()) + * @onlyStrict + */ + +function f() { "use strict"; return this;}; +if (f.bind(fnGlobalObject())() !== fnGlobalObject()){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-81-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-81-s.js new file mode 100644 index 000000000..61be6b784 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-81-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-81-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict function declaration) + * @noStrict + */ + +function testcase() { +function f() { return this!==undefined;}; +function foo() { "use strict"; return f();} +return foo(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-81gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-81gs.js new file mode 100644 index 000000000..0544e0cd7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-81gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-81gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict function declaration) + * @noStrict + */ + +function f() { return this!==undefined;}; +function foo() { "use strict"; return f();} +if (! foo()){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-82-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-82-s.js new file mode 100644 index 000000000..0a2b16600 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-82-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-82-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict eval) + * @noStrict + */ + +function testcase() { +function f() { return this!==undefined;}; +return (function () {"use strict"; return eval("f();");})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-82gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-82gs.js new file mode 100644 index 000000000..305435eeb --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-82gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-82gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict eval) + * @noStrict + */ + +function f() { return this!==undefined;}; +if (! ((function () {"use strict"; return eval("f();");})()) ){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-83-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-83-s.js new file mode 100644 index 000000000..f03adeff5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-83-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-83-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function constructor) + * @noStrict + */ + +function testcase() { +fnGlobalObject().f = function() {return this!==undefined;}; +return (function () {return Function("\"use strict\";return f();")();})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-83gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-83gs.js new file mode 100644 index 000000000..dfe59d84e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-83gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-83gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function constructor) + * @noStrict + */ + +function f() {return this!==undefined;}; +if (! ((function () {return Function("\"use strict\";return f();")();})()) ){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-84-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-84-s.js new file mode 100644 index 000000000..807817846 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-84-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-84-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict new'ed Function constructor) + * @noStrict + */ + +function testcase() { +fnGlobalObject().f = function() { return this!==undefined;}; +return (function () {return new Function("\"use strict\";return f();")();})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-84gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-84gs.js new file mode 100644 index 000000000..23a20910d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-84gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-84gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict new'ed Function constructor) + * @noStrict + */ + +function f() { return this!==undefined;}; +if (! ((function () {return new Function("\"use strict\";return f();")();})()) ){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-85-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-85-s.js new file mode 100644 index 000000000..abdb33b92 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-85-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-85-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.apply()) + * @noStrict + */ + +function testcase() { +function f() { return this!==undefined;}; +return (function () {"use strict"; return f.apply();})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-85gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-85gs.js new file mode 100644 index 000000000..093115f32 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-85gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-85gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.apply()) + * @noStrict + */ + +function f() { return this!==undefined;}; +if (! ((function () {"use strict"; return f.apply();})())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-86-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-86-s.js new file mode 100644 index 000000000..fca8007f3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-86-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-86-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.apply(null)) + * @noStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.apply(null);})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-86gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-86gs.js new file mode 100644 index 000000000..f1e23cce2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-86gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-86gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.apply(null)) + * @noStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.apply(null);})())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-87-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-87-s.js new file mode 100644 index 000000000..be4505ace --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-87-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-87-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.apply(undefined)) + * @noStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject()}; +return (function () {"use strict"; return f.apply(undefined);})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-87gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-87gs.js new file mode 100644 index 000000000..af76c9a8b --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-87gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-87gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.apply(undefined)) + * @noStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.apply(undefined);})())){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-88-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-88-s.js new file mode 100644 index 000000000..72c424567 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-88-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-88-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.apply(someObject)) + * @onlyStrict + */ + +function testcase() { +var o = {}; +function f() { return this===o;}; +return (function () {"use strict"; return f.apply(o);})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-88gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-88gs.js new file mode 100644 index 000000000..8b85f6993 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-88gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-88gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.apply(someObject)) + * @onlyStrict + */ + +var o = {}; +function f() { return this===o;}; +if (! ((function () {"use strict"; return f.apply(o);})())){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-89-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-89-s.js new file mode 100644 index 000000000..451851d5b --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-89-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-89-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.apply(globalObject)) + * @onlyStrict + */ + +function testcase() { +function f() { return this;}; +return (function () {"use strict"; return f.apply(fnGlobalObject()); })() === fnGlobalObject(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-89gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-89gs.js new file mode 100644 index 000000000..68f415a64 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-89gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-89gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.apply(globalObject)) + * @onlyStrict + */ + +function f() { return this;}; +if ((function () {"use strict"; return f.apply(fnGlobalObject());})() !== fnGlobalObject()){ + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-8gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-8gs.js new file mode 100644 index 000000000..814fb7ec7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-8gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-8gs.js + * @description Strict - checking 'this' from a global scope (FunctionDeclaration includes strict directive prologue) + * @onlyStrict + */ + +function f() { + "use strict"; + return typeof this; +} +if (f() !== "undefined") { + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-9-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-9-s.js new file mode 100644 index 000000000..38ca374e7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-9-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-9-s.js + * @description Strict Mode - checking 'this' (FunctionExpression defined within strict mode) + * @onlyStrict + */ + +function testcase() { +"use strict"; +var f = function () { + return typeof this; +} +return f() === "undefined"; +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-90-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-90-s.js new file mode 100644 index 000000000..0b6a4b3f1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-90-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-90-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.call()) + * @noStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.call(); })(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-90gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-90gs.js new file mode 100644 index 000000000..78a91247f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-90gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-90gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.call()) + * @noStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.call();})())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-91-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-91-s.js new file mode 100644 index 000000000..2dc4007e9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-91-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-91-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.call(null)) + * @noStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.call(null); })(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-91gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-91gs.js new file mode 100644 index 000000000..c1052a773 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-91gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-91gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.call(null)) + * @noStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.call(null); })())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-92-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-92-s.js new file mode 100644 index 000000000..3a04a7b6f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-92-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-92-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.call(undefined)) + * @noStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.call(undefined);})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-92gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-92gs.js new file mode 100644 index 000000000..4517302f3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-92gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-92gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.call(undefined)) + * @noStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.call(undefined);})())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-93-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-93-s.js new file mode 100644 index 000000000..e8da599e7 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-93-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-93-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.call(someObject)) + * @onlyStrict + */ + +function testcase() { +var o = {}; +function f() { return this===o;}; +return (function () {"use strict"; return f.call(o); })(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-93gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-93gs.js new file mode 100644 index 000000000..44bd495b4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-93gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-93gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.call(someObject)) + * @onlyStrict + */ + +var o = {}; +function f() { return this===o;}; +if (! ((function () {"use strict"; return f.call(o); })())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-94-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-94-s.js new file mode 100644 index 000000000..655ac9e76 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-94-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-94-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.call(globalObject)) + * @onlyStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.call(fnGlobalObject());})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-94gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-94gs.js new file mode 100644 index 000000000..e752c688e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-94gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-94gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.call(globalObject)) + * @onlyStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.call(fnGlobalObject());})())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-95-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-95-s.js new file mode 100644 index 000000000..db48e89d9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-95-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-95-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.bind()()) + * @noStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.bind()(); })(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-95gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-95gs.js new file mode 100644 index 000000000..5d5fc09b8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-95gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-95gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.bind()()) + * @noStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.bind()(); })())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-96-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-96-s.js new file mode 100644 index 000000000..3c4e652c3 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-96-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-96-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.bind(null)()) + * @noStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.bind(null)(); })(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-96gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-96gs.js new file mode 100644 index 000000000..cbfe417c4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-96gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-96gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.bind(null)()) + * @noStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.bind(null)(); })())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-97-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-97-s.js new file mode 100644 index 000000000..feac73bd6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-97-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-97-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.bind(undefined)()) + * @noStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.bind(undefined)();})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-97gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-97gs.js new file mode 100644 index 000000000..1e79dd96e --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-97gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-97gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.bind(undefined)()) + * @noStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.bind(undefined)(); })())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-98-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-98-s.js new file mode 100644 index 000000000..1c07cafc6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-98-s.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-98-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.bind(someObject)()) + * @onlyStrict + */ + +function testcase() { +var o = {}; +function f() { return this===o;}; +return (function () {"use strict"; return f.bind(o)();})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-98gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-98gs.js new file mode 100644 index 000000000..c72e9dcc6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-98gs.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-98gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.bind(someObject)()) + * @onlyStrict + */ + +var o = {}; +function f() { return this===o;}; +if (! ((function () {"use strict"; return f.bind(o)();})())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-99-s.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-99-s.js new file mode 100644 index 000000000..47b1dac4d --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-99-s.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-99-s.js + * @description Strict Mode - checking 'this' (non-strict function declaration called by strict Function.prototype.bind(globalObject)()) + * @onlyStrict + */ + +function testcase() { +function f() { return this===fnGlobalObject();}; +return (function () {"use strict"; return f.bind(fnGlobalObject())();})(); +} +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-99gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-99gs.js new file mode 100644 index 000000000..5e9730d9f --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-99gs.js @@ -0,0 +1,15 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-99gs.js + * @description Strict - checking 'this' from a global scope (non-strict function declaration called by strict Function.prototype.bind(globalObject)()) + * @onlyStrict + */ + +function f() { return this===fnGlobalObject();}; +if (! ((function () {"use strict"; return f.bind(fnGlobalObject())();})())){ + throw "'this' had incorrect value!"; +} diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-9gs.js b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-9gs.js new file mode 100644 index 000000000..56c150c89 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/10.4.3-1-9gs.js @@ -0,0 +1,18 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.4/10.4.3/10.4.3-1-9gs.js + * @description Strict - checking 'this' from a global scope (FunctionExpression defined within strict mode) + * @onlyStrict + */ + +"use strict"; +var f = function () { + return typeof this; +} +if (f() !== "undefined") { + throw "'this' had incorrect value!"; +} \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/S10.4.3_A1.js b/js/src/tests/test262/ch10/10.4/10.4.3/S10.4.3_A1.js new file mode 100644 index 000000000..ea2432219 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/10.4.3/S10.4.3_A1.js @@ -0,0 +1,16 @@ +// Copyright 2011 Google, Inc. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @path ch10/10.4/10.4.3/S10.4.3_A1.js + * @description When calling a strict anonymous function as a + * function, "this" should be bound to undefined. + * @onlyStrict + */ + +"use strict"; +var that = (function() { return this; })(); +if (that !== undefined) { + $ERROR('#1: "this" leaked as: ' + that); +} + diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/browser.js b/js/src/tests/test262/ch10/10.4/10.4.3/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.4/10.4.3/shell.js b/js/src/tests/test262/ch10/10.4/10.4.3/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.4/S10.4A1.1_T2.js b/js/src/tests/test262/ch10/10.4/S10.4A1.1_T2.js new file mode 100644 index 000000000..080aad06a --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/S10.4A1.1_T2.js @@ -0,0 +1,33 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every function call enters a new execution context + * + * @path ch10/10.4/S10.4A1.1_T2.js + * @description Recursive function call + */ + +var y; + +function f(a){ + var x; + + if (a === 1) + return x; + else { + if(x === undefined) { + x = 0; + } else { + x = 1; + } + return f(1); + } +} + +y = f(0); + +if(!(y === undefined)){ + $ERROR("#1: Recursive function calls shares execution context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/S10.4_A1.1_T1.js b/js/src/tests/test262/ch10/10.4/S10.4_A1.1_T1.js new file mode 100644 index 000000000..408d50770 --- /dev/null +++ b/js/src/tests/test262/ch10/10.4/S10.4_A1.1_T1.js @@ -0,0 +1,31 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Every function call enters a new execution context + * + * @path ch10/10.4/S10.4_A1.1_T1.js + * @description Sequence of function calls + */ + +var y; + +function f(){ + var x; + + if(x === undefined) { + x = 0; + } else { + x = 1; + } + + return x; +} + +y = f(); +y = f(); + +if(!(y === 0)){ + $ERROR("#1: Sequenced function calls shares execution context"); +} + diff --git a/js/src/tests/test262/ch10/10.4/browser.js b/js/src/tests/test262/ch10/10.4/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.4/shell.js b/js/src/tests/test262/ch10/10.4/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.5/10.5-1-s.js b/js/src/tests/test262/ch10/10.5/10.5-1-s.js new file mode 100644 index 000000000..fc841a5e4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.5/10.5-1-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.5/10.5-1-s.js + * @description Strict Mode - arguments object is immutable + * @onlyStrict + */ + + +function testcase() { + "use strict"; + try { + (function fun() { + eval("arguments = 10"); + })(30); + return false; + } catch (e) { + return (e instanceof SyntaxError); + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.5/10.5-1gs.js b/js/src/tests/test262/ch10/10.5/10.5-1gs.js new file mode 100644 index 000000000..aafbeb333 --- /dev/null +++ b/js/src/tests/test262/ch10/10.5/10.5-1gs.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. + +/** + * @path ch10/10.5/10.5-1gs.js + * @description Strict Mode - arguments cannot be assigned to in a strict function + * @onlyStrict + * @negative ^((?!NotEarlyError).)*$ + */ + +"use strict"; +throw NotEarlyError; + +function f_10_5_1_gs(){ + arguments = 7; +} + diff --git a/js/src/tests/test262/ch10/10.5/10.5-7-b-1-s.js b/js/src/tests/test262/ch10/10.5/10.5-7-b-1-s.js new file mode 100644 index 000000000..e1855c7c6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.5/10.5-7-b-1-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.5/10.5-7-b-1-s.js + * @description Strict Mode - arguments object is immutable in eval'ed functions + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + try { + eval("(function _10_5_7_b_1_fun() { arguments = 10;} ());"); + return false; + } catch (e) { + return e instanceof SyntaxError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.5/10.5-7-b-2-s.js b/js/src/tests/test262/ch10/10.5/10.5-7-b-2-s.js new file mode 100644 index 000000000..47820009e --- /dev/null +++ b/js/src/tests/test262/ch10/10.5/10.5-7-b-2-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.5/10.5-7-b-2-s.js + * @description Strict Mode - arguments object index assignment is allowed + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + function _10_5_7_b_2_fun() { + arguments[7] = 12; + return arguments[7] === 12; + }; + + return _10_5_7_b_2_fun(30); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.5/10.5-7-b-3-s.js b/js/src/tests/test262/ch10/10.5/10.5-7-b-3-s.js new file mode 100644 index 000000000..4f4a66dcd --- /dev/null +++ b/js/src/tests/test262/ch10/10.5/10.5-7-b-3-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.5/10.5-7-b-3-s.js + * @description Strict Mode - Adding property to the arguments object successful under strict mode + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + function _10_5_7_b_3_fun() { + arguments[1] = 12; + return arguments[0] = 30 && arguments[1] === 12; + }; + + return _10_5_7_b_3_fun(30); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.5/10.5-7-b-4-s.js b/js/src/tests/test262/ch10/10.5/10.5-7-b-4-s.js new file mode 100644 index 000000000..c695446b4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.5/10.5-7-b-4-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.5/10.5-7-b-4-s.js + * @description Strict Mode - Deleting property of the arguments object successful under strict mode + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + function _10_5_7_b_4_fun() { + var _10_5_7_b_4_1 = arguments[0] === 30 && arguments[1] === 12; + delete arguments[1]; + var _10_5_7_b_4_2 = arguments[0] === 30 && typeof arguments[1] === "undefined"; + return _10_5_7_b_4_1 && _10_5_7_b_4_2; + }; + return _10_5_7_b_4_fun(30, 12); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.5/browser.js b/js/src/tests/test262/ch10/10.5/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.5/shell.js b/js/src/tests/test262/ch10/10.5/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1-s.js b/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1-s.js new file mode 100644 index 000000000..dcc3c49f9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1-s.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-10-c-ii-1-s.js + * @description arguments[i] remains same after changing actual parameters in strict mode + * @onlyStrict + */ + + +function testcase() { + function foo(a,b,c) + { + 'use strict'; + a = 1; b = 'str'; c = 2.1; + return (arguments[0] === 10 && arguments[1] === 'sss' && arguments[2] === 1); + } + return foo(10, 'sss', 1); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1.js b/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1.js new file mode 100644 index 000000000..f0db64ee2 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-1.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-10-c-ii-1.js + * @description arguments[i] change with actual parameters + */ + + +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); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2-s.js b/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2-s.js new file mode 100644 index 000000000..58143f841 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2-s.js @@ -0,0 +1,23 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-10-c-ii-2-s.js + * @description arguments[i] doesn't map to actual parameters in strict mode + * @onlyStrict + */ + + +function testcase() { + + function foo(a,b,c) + { + 'use strict'; + arguments[0] = 1; arguments[1] = 'str'; arguments[2] = 2.1; + return 10 === a && 'sss' === b && 1 === c; + } + return foo(10,'sss',1); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2.js b/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2.js new file mode 100644 index 000000000..5891dfe3b --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-10-c-ii-2.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-10-c-ii-2.js + * @description arguments[i] map to actual parameter + */ + + +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); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-11-b-1.js b/js/src/tests/test262/ch10/10.6/10.6-11-b-1.js new file mode 100644 index 000000000..bcf937d63 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-11-b-1.js @@ -0,0 +1,54 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/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) + */ + + +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]; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-12-1.js b/js/src/tests/test262/ch10/10.6/10.6-12-1.js new file mode 100644 index 000000000..12746eb1e --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-12-1.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-12-1.js + * @description Accessing callee property of Arguments object is allowed + */ + + +function testcase() { + try + { + arguments.callee; + return true; + } + catch (e) { + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-12-2.js b/js/src/tests/test262/ch10/10.6/10.6-12-2.js new file mode 100644 index 000000000..11a1793f4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-12-2.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-12-2.js + * @description arguments.callee has correct attributes + */ + + +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; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-1.js b/js/src/tests/test262/ch10/10.6/10.6-13-1.js new file mode 100644 index 000000000..d871a9ccb --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-1.js @@ -0,0 +1,21 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-1.js + * @description Accessing caller property of Arguments object is allowed + */ + + +function testcase() { + try + { + arguments.caller; + return true; + } + catch (e) { + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-a-1.js b/js/src/tests/test262/ch10/10.6/10.6-13-a-1.js new file mode 100644 index 000000000..a7b3f2ee6 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-a-1.js @@ -0,0 +1,45 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/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) + */ + + +function testcase() { + try { + Object.defineProperty(Object.prototype, "callee", { + value: 1, + writable: false, + configurable: true + }); + + var argObj = (function () { return arguments })(); + + var verifyValue = false; + verifyValue = 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; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-a-2.js b/js/src/tests/test262/ch10/10.6/10.6-13-a-2.js new file mode 100644 index 000000000..b68171258 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-a-2.js @@ -0,0 +1,35 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-a-2.js + * @description A direct call to arguments.callee.caller should work + */ + + +function testcase() { + var called = false; + + function test1(flag) { + if (flag!==true) { + test2(); + } else { + called = true; + } + } + + function test2() { + if(arguments.callee.caller===undefined) { + called=true; // Extension not supported - fake it + } else { + arguments.callee.caller(true); + } + } + + test1(); + return called; +} + +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-a-3.js b/js/src/tests/test262/ch10/10.6/10.6-13-a-3.js new file mode 100644 index 000000000..ddd03a68c --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-a-3.js @@ -0,0 +1,36 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-a-3.js + * @description An indirect call to arguments.callee.caller should work + */ + + +function testcase() { + var called = false; + + function test1(flag) { + if (flag!==true) { + test2(); + } else { + called = true; + } + } + + function test2() { + if (arguments.callee.caller===undefined) { + called = true; //Extension not supported - fake it + } else { + var explicit = arguments.callee.caller; + explicit(true); + } + } + + test1(); + return called; +} + +runTestCase(testcase); \ No newline at end of file diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-b-1-s.js b/js/src/tests/test262/ch10/10.6/10.6-13-b-1-s.js new file mode 100644 index 000000000..d44b475af --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-b-1-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-b-1-s.js + * @description Accessing caller property of Arguments object throws TypeError in strict mode + * @onlyStrict + */ + + +function testcase() { + 'use strict'; + try + { + arguments.caller; + } + catch (e) { + if(e instanceof TypeError) + return true; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-b-2-s.js b/js/src/tests/test262/ch10/10.6/10.6-13-b-2-s.js new file mode 100644 index 000000000..0f1b2b764 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-b-2-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-b-2-s.js + * @description arguments.caller exists in strict mode + * @onlyStrict + */ + + +function testcase() { + + 'use strict'; + var desc = Object.getOwnPropertyDescriptor(arguments,"caller"); + return desc!== undefined; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-b-3-s.js b/js/src/tests/test262/ch10/10.6/10.6-13-b-3-s.js new file mode 100644 index 000000000..d85e084f1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-b-3-s.js @@ -0,0 +1,26 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-b-3-s.js + * @description arguments.caller is non-configurable in strict mode + * @onlyStrict + */ + + +function testcase() { + + 'use strict'; + var desc = Object.getOwnPropertyDescriptor(arguments,"caller"); + + return (desc.configurable === false && + desc.enumerable === false && + desc.hasOwnProperty('value') == false && + desc.hasOwnProperty('writable') == false && + desc.hasOwnProperty('get') == true && + desc.hasOwnProperty('set') == true); + + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-c-1-s.js b/js/src/tests/test262/ch10/10.6/10.6-13-c-1-s.js new file mode 100644 index 000000000..f17a9b37b --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-c-1-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-c-1-s.js + * @description Accessing callee property of Arguments object throws TypeError in strict mode + * @onlyStrict + */ + + +function testcase() { + 'use strict'; + try + { + arguments.callee; + return false; + } + catch (e) { + return (e instanceof TypeError); + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-c-2-s.js b/js/src/tests/test262/ch10/10.6/10.6-13-c-2-s.js new file mode 100644 index 000000000..e08e77003 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-c-2-s.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-c-2-s.js + * @description arguments.callee is exists in strict mode + * @onlyStrict + */ + + +function testcase() { + + 'use strict'; + var desc = Object.getOwnPropertyDescriptor(arguments,"callee"); + return desc !== undefined; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-13-c-3-s.js b/js/src/tests/test262/ch10/10.6/10.6-13-c-3-s.js new file mode 100644 index 000000000..8122932bd --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-13-c-3-s.js @@ -0,0 +1,24 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-13-c-3-s.js + * @description arguments.callee is non-configurable in strict mode + * @onlyStrict + */ + + +function testcase() { + + 'use strict'; + var desc = Object.getOwnPropertyDescriptor(arguments,"callee"); + return (desc.configurable === false && + desc.enumerable === false && + desc.hasOwnProperty('value') == false && + desc.hasOwnProperty('writable') == false && + desc.hasOwnProperty('get') == true && + desc.hasOwnProperty('set') == true); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-14-1-s.js b/js/src/tests/test262/ch10/10.6/10.6-14-1-s.js new file mode 100644 index 000000000..aebc6fa1c --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-14-1-s.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-14-1-s.js + * @description Strict Mode - 'callee' exists and 'caller' exists under strict mode + * @onlyStrict + */ + + +function testcase() { + "use strict"; + var argObj = function () { + return arguments; + } (); + return argObj.hasOwnProperty("callee") && argObj.hasOwnProperty("caller"); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-14-b-1-s.js b/js/src/tests/test262/ch10/10.6/10.6-14-b-1-s.js new file mode 100644 index 000000000..51cbfff4d --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-14-b-1-s.js @@ -0,0 +1,28 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-14-b-1-s.js + * @description Strict Mode - [[Enumerable]] attribute value in 'caller' is false under strict mode + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + var argObj = function () { + return arguments; + } (); + + var verifyEnumerable = false; + for (var _10_6_14_b_1 in argObj) { + if (argObj.hasOwnProperty(_10_6_14_b_1) && _10_6_14_b_1 === "caller") { + verifyEnumerable = true; + } + } + return !verifyEnumerable && argObj.hasOwnProperty("caller"); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-14-b-4-s.js b/js/src/tests/test262/ch10/10.6/10.6-14-b-4-s.js new file mode 100644 index 000000000..748c630a9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-14-b-4-s.js @@ -0,0 +1,27 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-14-b-4-s.js + * @description Strict Mode - TypeError is thrown when accessing the [[Set]] attribute in 'caller' under strict mode + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + var argObj = function () { + return arguments; + } (); + + try { + argObj.caller = {}; + return false; + } catch (e) { + return e instanceof TypeError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-14-c-1-s.js b/js/src/tests/test262/ch10/10.6/10.6-14-c-1-s.js new file mode 100644 index 000000000..cade0a537 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-14-c-1-s.js @@ -0,0 +1,28 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-14-c-1-s.js + * @description Strict Mode - [[Enumerable]] attribute value in 'callee' is false under strict mode + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + var argObj = function () { + return arguments; + } (); + + var verifyEnumerable = false; + for (var _10_6_14_c_1 in argObj) { + if (argObj.hasOwnProperty(_10_6_14_c_1) && _10_6_14_c_1 === "callee") { + verifyEnumerable = true; + } + } + return !verifyEnumerable && argObj.hasOwnProperty("callee"); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-14-c-4-s.js b/js/src/tests/test262/ch10/10.6/10.6-14-c-4-s.js new file mode 100644 index 000000000..1238570c4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-14-c-4-s.js @@ -0,0 +1,27 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-14-c-4-s.js + * @description Strict Mode - TypeError is thrown when accessing the [[Set]] attribute in 'callee' under strict mode + * @onlyStrict + */ + + +function testcase() { + "use strict"; + + var argObj = function () { + return arguments; + } (); + + try { + argObj.callee = {}; + return false; + } catch (e) { + return e instanceof TypeError; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-1gs.js b/js/src/tests/test262/ch10/10.6/10.6-1gs.js new file mode 100644 index 000000000..f77fd3c57 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-1gs.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. + +/** + * @path ch10/10.6/10.6-1gs.js + * @description Strict Mode - arguments.callee cannot be accessed in a strict function, but does not throw an early error + * @onlyStrict + */ + +"use strict"; +function f_10_6_1_gs(){ + return arguments.callee; +} + diff --git a/js/src/tests/test262/ch10/10.6/10.6-2gs.js b/js/src/tests/test262/ch10/10.6/10.6-2gs.js new file mode 100644 index 000000000..e13cc02f5 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-2gs.js @@ -0,0 +1,19 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. + +/** + * @path ch10/10.6/10.6-2gs.js + * @description Strict Mode - arguments.callee cannot be accessed in a strict function + * @onlyStrict + * @negative . + */ + +"use strict"; +function f_10_6_1_gs(){ + return arguments.callee; +} +f_10_6_1_gs(); + diff --git a/js/src/tests/test262/ch10/10.6/10.6-5-1.js b/js/src/tests/test262/ch10/10.6/10.6-5-1.js new file mode 100644 index 000000000..f058239fe --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-5-1.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-5-1.js + * @description [[Prototype]] property of Arguments is set to Object prototype object + */ + + +function testcase() { + if(Object.getPrototypeOf(arguments) === Object.getPrototypeOf({})) + return true; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-6-1.js b/js/src/tests/test262/ch10/10.6/10.6-6-1.js new file mode 100644 index 000000000..d0ec15e27 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-6-1.js @@ -0,0 +1,17 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-6-1.js + * @description 'length property of arguments object exists + */ + + +function testcase() { + + var desc = Object.getOwnPropertyDescriptor(arguments,"length"); + return desc !== undefined + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-6-2.js b/js/src/tests/test262/ch10/10.6/10.6-6-2.js new file mode 100644 index 000000000..afad35fd0 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-6-2.js @@ -0,0 +1,20 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-6-2.js + * @description 'length' property of arguments object has correct attributes + */ + + +function testcase() { + + var desc = Object.getOwnPropertyDescriptor(arguments,"length"); + if(desc.configurable === true && + desc.enumerable === false && + desc.writable === true ) + return true; + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-6-3.js b/js/src/tests/test262/ch10/10.6/10.6-6-3.js new file mode 100644 index 000000000..e7838e8a4 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-6-3.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-6-3.js + * @description 'length' property of arguments object for 0 argument function exists + */ + + +function testcase() { + var arguments= undefined; + return (function () {return arguments.length !== undefined})(); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-6-4.js b/js/src/tests/test262/ch10/10.6/10.6-6-4.js new file mode 100644 index 000000000..6a3a77b23 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-6-4.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/10.6/10.6-6-4.js + * @description 'length' property of arguments object for 0 argument function call is 0 even with formal parameters + */ + + +function testcase() { + var arguments= undefined; + return (function (a,b,c) {return arguments.length === 0})(); + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/10.6-7-1.js b/js/src/tests/test262/ch10/10.6/10.6-7-1.js new file mode 100644 index 000000000..30fd4f373 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/10.6-7-1.js @@ -0,0 +1,53 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch10/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) + */ + + +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; + } + } +runTestCase(testcase); diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A1.js b/js/src/tests/test262/ch10/10.6/S10.6_A1.js new file mode 100644 index 000000000..89df9c4dd --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A1.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * When control enters an execution context for function code, + * an arguments object is created and initialised + * + * @path ch10/10.6/S10.6_A1.js + * @description Executing function which uses arguments object + */ + +//CHECK#1 +function f1(){ + return arguments; +} + +try{ + var x = f1(); +} +catch(e){ + $ERROR("#1: arguments doesn't exists"); +} + +//CHECK#2 +var f2 = function(){ + return arguments; +} + +try{ + var x = f2(); +} +catch(e){ + $ERROR("#2: arguments doesn't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A2.js b/js/src/tests/test262/ch10/10.6/S10.6_A2.js new file mode 100644 index 000000000..18698be00 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A2.js @@ -0,0 +1,36 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The value of the internal [[Prototype]] property of the + * created arguments object is the original Object prototype object, the one + * that is the initial value of Object.prototype + * + * @path ch10/10.6/S10.6_A2.js + * @description Checking arguments.constructor.prototype===Object.prototype + */ + +//CHECK#1 +function f1(){ + return arguments.constructor.prototype; +} +try{ + if(f1() !== Object.prototype){ + $ERROR('#1: arguments.constructor.prototype === Object.prototype'); + } +} +catch(e){ + $ERROR("#1: arguments doesn't exists"); +} + +//CHECK#2 +var f2 = function(){return arguments.constructor.prototype;}; +try{ + if(f2() !== Object.prototype){ + $ERROR('#2: arguments.constructor.prototype === Object.prototype'); + } +} +catch(e){ + $ERROR("#2: arguments doesn't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A3_T1.js b/js/src/tests/test262/ch10/10.6/S10.6_A3_T1.js new file mode 100644 index 000000000..234d6ad1a --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A3_T1.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * A property is created with name callee with property + * attributes { DontEnum } and no others + * + * @path ch10/10.6/S10.6_A3_T1.js + * @description Checking existence of arguments.callee property + */ + +//CHECK#1 +function f1(){ + return arguments.hasOwnProperty("callee"); +} +try{ + if(f1() !== true){ + $ERROR("#1: arguments object doesn't contains property 'callee'"); + } +} +catch(e){ + $ERROR("#1: arguments object doesn't exists"); +} + +//CHECK#2 +var f2 = function(){return arguments.hasOwnProperty("callee");}; +try{ + if(f2() !== true){ + $ERROR("#2: arguments object doesn't contains property 'callee'"); + } +} +catch(e){ + $ERROR("#2: arguments object doesn't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A3_T2.js b/js/src/tests/test262/ch10/10.6/S10.6_A3_T2.js new file mode 100644 index 000000000..327e5cf36 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A3_T2.js @@ -0,0 +1,49 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * A property is created with name callee with property + * attributes { DontEnum } and no others + * + * @path ch10/10.6/S10.6_A3_T2.js + * @description Checking if enumerating the arguments.callee property fails + */ + +//CHECK#1 +function f1(){ + for(var x in arguments){ + if (x === "callee"){ + return false; + } + } + return true; +} + +try{ + if(!f1()){ + $ERROR("#1: A property callee don't have attribute { DontEnum }"); + } +} +catch(e){ + $ERROR("#1: arguments object don't exists"); +} + +//CHECK#2 +var f2 = function(){ + for(var x in arguments){ + if (x === "callee"){ + return false; + } + } + return true; +} + +try{ + if(!f2()){ + $ERROR("#2: A property callee don't have attribute { DontEnum }"); + } +} +catch(e){ + $ERROR("#2: arguments object don't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A3_T3.js b/js/src/tests/test262/ch10/10.6/S10.6_A3_T3.js new file mode 100644 index 000000000..4b2626570 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A3_T3.js @@ -0,0 +1,40 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * A property is created with name callee with property + * attributes { DontEnum } and no others + * + * @path ch10/10.6/S10.6_A3_T3.js + * @description Checking if deleting arguments.callee property fails + * @noStrict + */ + +//CHECK#1 +function f1(){ + return (delete arguments.callee); +} + +try{ + if(!f1()){ + $ERROR("#1: A property callee have attribute { DontDelete }"); + } +} +catch(e){ + $ERROR("#1: arguments object don't exists"); +} + +//CHECK#2 +var f2 = function(){ + return (delete arguments.callee); +} + +try{ + if(!f2()){ + $ERROR("#2: A property callee have attribute { DontDelete }"); + } +} +catch(e){ + $ERROR("#2: arguments object don't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A3_T4.js b/js/src/tests/test262/ch10/10.6/S10.6_A3_T4.js new file mode 100644 index 000000000..c83983507 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A3_T4.js @@ -0,0 +1,42 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * A property is created with name callee with property + * attributes { DontEnum } and no others + * + * @path ch10/10.6/S10.6_A3_T4.js + * @description Overriding arguments.callee property + * @noStrict + */ + +var str = "something different"; +//CHECK#1 +function f1(){ + arguments.callee = str; + return arguments; +} + +try{ + if(f1().callee !== str){ + $ERROR("#1: A property callee have attribute { ReadOnly }"); + } +} +catch(e){ + $ERROR("#1: arguments object don't exists"); +} + +//CHECK#2 +var f2 = function(){ + arguments.callee = str; + return arguments; + } +try{ + if(f2().callee !== str){ + $ERROR("#2: A property callee have attribute { ReadOnly }"); + } +} +catch(e){ + $ERROR("#2: arguments object don't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A4.js b/js/src/tests/test262/ch10/10.6/S10.6_A4.js new file mode 100644 index 000000000..b49902a45 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A4.js @@ -0,0 +1,38 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The initial value of the created property callee is the + * Function object being executed + * + * @path ch10/10.6/S10.6_A4.js + * @description Checking that arguments.callee === function object + * @noStrict + */ + +//CHECK#1 +function f1(){ + return arguments.callee; +} + +try{ + if(f1 !== f1()){ + $ERROR('#1: arguments.callee === f1'); + } +} +catch(e){ + $ERROR("#1: arguments object doesn't exists"); +} + +//CHECK#2 +var f2 = function(){return arguments.callee;}; + +try{ + if(f2 !== f2()){ + $ERROR('#2: arguments.callee === f2'); + } +} +catch(e){ + $ERROR("#1: arguments object doesn't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A5_T1.js b/js/src/tests/test262/ch10/10.6/S10.6_A5_T1.js new file mode 100644 index 000000000..a76e58d47 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A5_T1.js @@ -0,0 +1,35 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * A property is created with name length with property + * attributes { DontEnum } and no others + * + * @path ch10/10.6/S10.6_A5_T1.js + * @description Checking existence of arguments.length property + */ + +//CHECK#1 +function f1(){ + return arguments.hasOwnProperty("length"); +} +try{ + if(f1() !== true){ + $ERROR("#1: arguments object doesn't contains property 'length'"); + } +} +catch(e){ + $ERROR("#1: arguments object doesn't exists"); +} + +//CHECK#2 +var f2 = function(){return arguments.hasOwnProperty("length");}; +try{ + if(f2() !== true){ + $ERROR("#2: arguments object doesn't contains property 'length'"); + } +} +catch(e){ + $ERROR("#2: arguments object doesn't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A5_T2.js b/js/src/tests/test262/ch10/10.6/S10.6_A5_T2.js new file mode 100644 index 000000000..a0f4df7a9 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A5_T2.js @@ -0,0 +1,49 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * A property is created with name length with property + * attributes { DontEnum } and no others + * + * @path ch10/10.6/S10.6_A5_T2.js + * @description Checking if enumerating the arguments.length property fails + */ + +//CHECK#1 +function f1(){ + for(var x in arguments){ + if (x === "length"){ + return false; + } + } + return true; +} + +try{ + if(!f1()){ + $ERROR("#1: A property length don't have attribute { DontEnum }"); + } +} +catch(e){ + $ERROR("#1: arguments object don't exists"); +} + +//CHECK#2 +var f2 = function(){ + for(var x in arguments){ + if (x === "length"){ + return false; + } + } + return true; +} + +try{ + if(!f2()){ + $ERROR("#2: A property length don't have attribute { DontEnum }"); + } +} +catch(e){ + $ERROR("#2: arguments object don't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A5_T3.js b/js/src/tests/test262/ch10/10.6/S10.6_A5_T3.js new file mode 100644 index 000000000..c8187fac8 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A5_T3.js @@ -0,0 +1,39 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * A property is created with name length with property + * attributes { DontEnum } and no others + * + * @path ch10/10.6/S10.6_A5_T3.js + * @description Checking if deleting arguments.length property fails + */ + +//CHECK#1 +function f1(){ + return (delete arguments.length); +} + +try{ + if(!f1()){ + $ERROR("#1: A property length have attribute { DontDelete }"); + } +} +catch(e){ + $ERROR("#1: arguments object don't exists"); +} + +//CHECK#2 +var f2 = function(){ + return (delete arguments.length); +} + +try{ + if(!f2()){ + $ERROR("#2: A property length have attribute { DontDelete }"); + } +} +catch(e){ + $ERROR("#2: arguments object don't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A5_T4.js b/js/src/tests/test262/ch10/10.6/S10.6_A5_T4.js new file mode 100644 index 000000000..7178bf424 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A5_T4.js @@ -0,0 +1,41 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * A property is created with name length with property + * attributes { DontEnum } and no others + * + * @path ch10/10.6/S10.6_A5_T4.js + * @description Overriding arguments.length property + */ + +var str = "something different"; +//CHECK#1 +function f1(){ + arguments.length = str; + return arguments; +} + +try{ + if(f1().length !== str){ + $ERROR("#1: A property length have attribute { ReadOnly }"); + } +} +catch(e){ + $ERROR("#1: arguments object don't exists"); +} + +//CHECK#2 +var f2 = function(){ + arguments.length = str; + return arguments; + }; +try{ + if(f2().length !== str){ + $ERROR("#2: A property length have attribute { ReadOnly }"); + } +} +catch(e){ + $ERROR("#2: arguments object don't exists"); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A6.js b/js/src/tests/test262/ch10/10.6/S10.6_A6.js new file mode 100644 index 000000000..3f1d0d1c1 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A6.js @@ -0,0 +1,67 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The initial value of the created property length is the number + * of actual parameter values supplied by the caller + * + * @path ch10/10.6/S10.6_A6.js + * @description Create function, that returned arguments.length + */ + +function f1(){ + return arguments.length; +} + +//CHECK#1 +if(!(f1() === 0)){ + $ERROR('#1: argument.length === 0'); +} + +//CHECK#2 +if(!(f1(0) === 1)){ + $ERROR('#2: argument.length === 1'); +} + +//CHECK#3 +if(!(f1(0, 1) === 2)){ + $ERROR('#3: argument.length === 2'); +} + +//CHECK#4 +if(!(f1(0, 1, 2) === 3)){ + $ERROR('#4: argument.length === 3'); +} + +//CHECK#5 +if(!(f1(0, 1, 2, 3) === 4)){ + $ERROR('#5: argument.length === 4'); +} + +var f2 = function(){return arguments.length;}; + +//CHECK#6 +if(!(f2() === 0)){ + $ERROR('#6: argument.length === 0'); +} + +//CHECK#7 +if(!(f2(0) === 1)){ + $ERROR('#7: argument.length === 1'); +} + +//CHECK#8 +if(!(f2(0, 1) === 2)){ + $ERROR('#8: argument.length === 2'); +} + +//CHECK#9 +if(!(f2(0, 1, 2) === 3)){ + $ERROR('#9: argument.length === 3'); +} + +//CHECK#10 +if(!(f2(0, 1, 2, 3) === 4)){ + $ERROR('#10: argument.length === 4'); +} + diff --git a/js/src/tests/test262/ch10/10.6/S10.6_A7.js b/js/src/tests/test262/ch10/10.6/S10.6_A7.js new file mode 100644 index 000000000..f013ba013 --- /dev/null +++ b/js/src/tests/test262/ch10/10.6/S10.6_A7.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Get arguments of function + * + * @path ch10/10.6/S10.6_A7.js + * @description Use property arguments + */ + +function f1() { + return arguments; +} + +//CHECK#1-5 +for(var i = 1; i < 5; i++){ +if (f1(1,2,3,4,5)[i] !== (i+1)) + $ERROR("#"+i+": Returning function's arguments work wrong, f1(1,2,3,4,5)["+i+"] !== "+(i+1)); +} + diff --git a/js/src/tests/test262/ch10/10.6/browser.js b/js/src/tests/test262/ch10/10.6/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/10.6/shell.js b/js/src/tests/test262/ch10/10.6/shell.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/browser.js b/js/src/tests/test262/ch10/browser.js new file mode 100644 index 000000000..e69de29bb diff --git a/js/src/tests/test262/ch10/shell.js b/js/src/tests/test262/ch10/shell.js new file mode 100644 index 000000000..e69de29bb -- cgit v1.2.3