summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/forin-002.js
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/forin-002.js')
-rw-r--r--Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/forin-002.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/forin-002.js b/Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/forin-002.js
new file mode 100644
index 0000000..1f527a9
--- /dev/null
+++ b/Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/forin-002.js
@@ -0,0 +1,73 @@
+/**
+ * File Name: forin-002.js
+ * ECMA Section:
+ * Description: The forin-001 statement
+ *
+ * Verify that the property name is assigned to the property on the left
+ * hand side of the for...in expression.
+ *
+ * Author: christine@netscape.com
+ * Date: 28 August 1998
+ */
+ var SECTION = "forin-002";
+ var VERSION = "ECMA_2";
+ var TITLE = "The for...in statement";
+
+ startTest();
+ writeHeaderToLog( SECTION + " "+ TITLE);
+
+ var tc = 0;
+ var testcases = new Array();
+
+ function MyObject( value ) {
+ this.value = value;
+ this.valueOf = new Function ( "return this.value" );
+ this.toString = new Function ( "return this.value + \"\"" );
+ this.toNumber = new Function ( "return this.value + 0" );
+ this.toBoolean = new Function ( "return Boolean( this.value )" );
+ }
+
+ ForIn_1(this);
+ ForIn_2(this);
+
+ ForIn_1(new MyObject(true));
+ ForIn_2(new MyObject(new Boolean(true)));
+
+ ForIn_2(3);
+
+ test();
+
+ /**
+ * For ... In in a With Block
+ *
+ */
+ function ForIn_1( object) {
+ with ( object ) {
+ for ( property in object ) {
+ testcases[tc++] = new TestCase(
+ SECTION,
+ "with loop in a for...in loop. ("+object+")["+property +"] == "+
+ "eval ( " + property +" )",
+ true,
+ object[property] == eval(property) );
+ }
+ }
+ }
+
+ /**
+ * With block in a For...In loop
+ *
+ */
+ function ForIn_2(object) {
+ for ( property in object ) {
+ with ( object ) {
+ testcases[tc++] = new TestCase(
+ SECTION,
+ "with loop in a for...in loop. ("+object+")["+property +"] == "+
+ "eval ( " + property +" )",
+ true,
+ object[property] == eval(property) );
+ }
+ }
+ }
+