summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/tests/mozilla/ecma/Array/15.4.4.4-1.js
diff options
context:
space:
mode:
Diffstat (limited to 'JavaScriptCore/tests/mozilla/ecma/Array/15.4.4.4-1.js')
-rw-r--r--JavaScriptCore/tests/mozilla/ecma/Array/15.4.4.4-1.js272
1 files changed, 0 insertions, 272 deletions
diff --git a/JavaScriptCore/tests/mozilla/ecma/Array/15.4.4.4-1.js b/JavaScriptCore/tests/mozilla/ecma/Array/15.4.4.4-1.js
deleted file mode 100644
index c8e7422..0000000
--- a/JavaScriptCore/tests/mozilla/ecma/Array/15.4.4.4-1.js
+++ /dev/null
@@ -1,272 +0,0 @@
-/* The contents of this file are subject to the Netscape Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/NPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is Mozilla Communicator client code, released March
- * 31, 1998.
- *
- * The Initial Developer of the Original Code is Netscape Communications
- * Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- */
-/**
- File Name: 15.4.4.3-1.js
- ECMA Section: 15.4.4.3-1 Array.prototype.reverse()
- Description:
-
- The elements of the array are rearranged so as to reverse their order.
- This object is returned as the result of the call.
-
- 1. Call the [[Get]] method of this object with argument "length".
- 2. Call ToUint32(Result(1)).
- 3. Compute floor(Result(2)/2).
- 4. Let k be 0.
- 5. If k equals Result(3), return this object.
- 6. Compute Result(2)k1.
- 7. Call ToString(k).
- 8. ToString(Result(6)).
- 9. Call the [[Get]] method of this object with argument Result(7).
- 10. Call the [[Get]] method of this object with argument Result(8).
- 11. If this object has a property named by Result(8), go to step 12; but
- if this object has no property named by Result(8), then go to either
- step 12 or step 14, depending on the implementation.
- 12. Call the [[Put]] method of this object with arguments Result(7) and
- Result(10).
- 13. Go to step 15.
- 14. Call the [[Delete]] method on this object, providing Result(7) as the
- name of the property to delete.
- 15. If this object has a property named by Result(7), go to step 16; but if
- this object has no property named by Result(7), then go to either step 16
- or step 18, depending on the implementation.
- 16. Call the [[Put]] method of this object with arguments Result(8) and
- Result(9).
- 17. Go to step 19.
- 18. Call the [[Delete]] method on this object, providing Result(8) as the
- name of the property to delete.
- 19. Increase k by 1.
- 20. Go to step 5.
-
-Note that the reverse function is intentionally generic; it does not require
-that its this value be an Array object. Therefore it can be transferred to other
-kinds of objects for use as a method. Whether the reverse function can be applied
-successfully to a host object is implementation dependent.
-
- Note: Array.prototype.reverse allows some flexibility in implementation
- regarding array indices that have not been populated. This test covers the
- cases in which unpopulated indices are not deleted, since the JavaScript
- implementation does not delete uninitialzed indices.
-
- Author: christine@netscape.com
- Date: 7 october 1997
-*/
- var SECTION = "15.4.4.4-1";
- var VERSION = "ECMA_1";
- startTest();
- var BUGNUMBER="123724";
-
- writeHeaderToLog( SECTION + " Array.prototype.reverse()");
-
- var testcases = new Array();
- getTestCases();
- test();
-
-function getTestCases() {
- var ARR_PROTOTYPE = Array.prototype;
-
- testcases[testcases.length] = new TestCase( SECTION, "Array.prototype.reverse.length", 0, Array.prototype.reverse.length );
- testcases[testcases.length] = new TestCase( SECTION, "delete Array.prototype.reverse.length", false, delete Array.prototype.reverse.length );
- testcases[testcases.length] = new TestCase( SECTION, "delete Array.prototype.reverse.length; Array.prototype.reverse.length", 0, eval("delete Array.prototype.reverse.length; Array.prototype.reverse.length") );
-
- // length of array is 0
- testcases[testcases.length] = new TestCase( SECTION,
- "var A = new Array(); A.reverse(); A.length",
- 0,
- eval("var A = new Array(); A.reverse(); A.length") );
-
- // length of array is 1
- var A = new Array(true);
- var R = Reverse(A);
-
- testcases[testcases.length] = new TestCase( SECTION,
- "var A = new Array(true); A.reverse(); A.length",
- R.length,
- eval("var A = new Array(true); A.reverse(); A.length") );
- CheckItems( R, A );
-
- // length of array is 2
- var S = "var A = new Array( true,false )";
- eval(S);
- var R = Reverse(A);
-
- testcases[testcases.length] = new TestCase(
- SECTION,
- S +"; A.reverse(); A.length",
- R.length,
- eval( S + "; A.reverse(); A.length") );
-
- CheckItems( R, A );
-
- // length of array is 3
- var S = "var A = new Array( true,false,null )";
- eval(S);
- var R = Reverse(A);
-
- testcases[testcases.length] = new TestCase( SECTION,
- S +"; A.reverse(); A.length",
- R.length,
- eval( S + "; A.reverse(); A.length") );
- CheckItems( R, A );
-
- // length of array is 4
- var S = "var A = new Array( true,false,null,void 0 )";
- eval(S);
- var R = Reverse(A);
-
- testcases[testcases.length] = new TestCase( SECTION,
- S +"; A.reverse(); A.length",
- R.length,
- eval( S + "; A.reverse(); A.length") );
- CheckItems( R, A );
-
-
- // some array indexes have not been set
- var S = "var A = new Array(); A[8] = 'hi', A[3] = 'yo'";
- eval(S);
- var R = Reverse(A);
-
- testcases[testcases.length] = new TestCase( SECTION,
- S +"; A.reverse(); A.length",
- R.length,
- eval( S + "; A.reverse(); A.length") );
- CheckItems( R, A );
-
-
- var OBJECT_OBJECT = new Object();
- var FUNCTION_OBJECT = new Function( 'return this' );
- var BOOLEAN_OBJECT = new Boolean;
- var DATE_OBJECT = new Date(0);
- var STRING_OBJECT = new String('howdy');
- var NUMBER_OBJECT = new Number(Math.PI);
- var ARRAY_OBJECT= new Array(1000);
-
- var args = "null, void 0, Math.pow(2,32), 1.234e-32, OBJECT_OBJECT, BOOLEAN_OBJECT, FUNCTION_OBJECT, DATE_OBJECT, STRING_OBJECT,"+
- "ARRAY_OBJECT, NUMBER_OBJECT, Math, true, false, 123, '90210'";
-
- var S = "var A = new Array("+args+")";
- eval(S);
- var R = Reverse(A);
-
- testcases[testcases.length] = new TestCase( SECTION,
- S +"; A.reverse(); A.length",
- R.length,
- eval( S + "; A.reverse(); A.length") );
- CheckItems( R, A );
-
- var limit = 1000;
- var args = "";
- for (var i = 0; i < limit; i++ ) {
- args += i +"";
- if ( i + 1 < limit ) {
- args += ",";
- }
- }
-
- var S = "var A = new Array("+args+")";
- eval(S);
- var R = Reverse(A);
-
- testcases[testcases.length] = new TestCase( SECTION,
- S +"; A.reverse(); A.length",
- R.length,
- eval( S + "; A.reverse(); A.length") );
- CheckItems( R, A );
-
- var S = "var MYOBJECT = new Object_1( \"void 0, 1, null, 2, \'\'\" )";
- eval(S);
- var R = Reverse( A );
-
- testcases[testcases.length] = new TestCase( SECTION,
- S +"; A.reverse(); A.length",
- R.length,
- eval( S + "; A.reverse(); A.length") );
- CheckItems( R, A );
-
- return ( testcases );
-}
-function CheckItems( R, A ) {
- for ( var i = 0; i < R.length; i++ ) {
- testcases[testcases.length] = new TestCase(
- SECTION,
- "A["+i+ "]",
- R[i],
- A[i] );
- }
-}
-function test() {
- for ( tc=0; tc < testcases.length; tc++ ) {
- testcases[tc].passed = writeTestCaseResult(
- testcases[tc].expect,
- testcases[tc].actual,
- testcases[tc].description +" = "+ testcases[tc].actual );
- testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
- }
- stopTest();
- return ( testcases );
-}
-function Object_1( value ) {
- this.array = value.split(",");
- this.length = this.array.length;
- for ( var i = 0; i < this.length; i++ ) {
- this[i] = eval(this.array[i]);
- }
- this.join = Array.prototype.reverse;
- this.getClass = Object.prototype.toString;
-}
-function Reverse( array ) {
- var r2 = array.length;
- var k = 0;
- var r3 = Math.floor( r2/2 );
- if ( r3 == k ) {
- return array;
- }
-
- for ( k = 0; k < r3; k++ ) {
- var r6 = r2 - k - 1;
-// var r7 = String( k );
- var r7 = k;
- var r8 = String( r6 );
-
- var r9 = array[r7];
- var r10 = array[r8];
-
- array[r7] = r10;
- array[r8] = r9;
- }
-
- return array;
-}
-function Iterate( array ) {
- for ( var i = 0; i < array.length; i++ ) {
-// print( i+": "+ array[String(i)] );
- }
-}
-
-function Object_1( value ) {
- this.array = value.split(",");
- this.length = this.array.length;
- for ( var i = 0; i < this.length; i++ ) {
- this[i] = this.array[i];
- }
- this.reverse = Array.prototype.reverse;
- this.getClass = Object.prototype.toString;
-}