Changeset 114185 in webkit for trunk/Source/JavaScriptCore/tests


Ignore:
Timestamp:
Apr 13, 2012, 5:26:25 PM (13 years ago)
Author:
[email protected]
Message:

Array.prototype.toString and Array.prototype.toLocaleString should be generic
https://bugs.webkit.org/show_bug.cgi?id=81588

Patch by Hojong Han <[email protected]> on 2012-04-13
Reviewed by Gavin Barraclough.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncToLocaleString):

  • runtime/CommonIdentifiers.h:
  • tests/mozilla/ecma/Array/15.4.4.2.js:

(getTestCases.array.item.new.TestCase):
(getTestCases):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/tests/mozilla/ecma/Array/15.4.4.2.js

    r43410 r114185  
    5656    array[item++] = new TestCase( SECTION,  "(new Array(void 0,null)).toString()",    ",",    (new Array(void 0,null)).toString() );
    5757
     58    array[item++] = new TestCase( SECTION,
     59                                  "{__proto__: Array.prototype, 0: 'a', 1: 'b', 2: 'c', length: 3}.toString()",
     60                                  "a,b,c",
     61                                  {__proto__: Array.prototype, 0: 'a', 1: 'b', 2: 'c', length: 3}.toString() );
     62    array[item++] = new TestCase( SECTION,
     63                                  "{__proto__: Array.prototype, 0: 'a', 1: 'b', 2: 'c', join: function() { return 'join' }}.toString()",
     64                                  "join",
     65                                  {__proto__: Array.prototype, 0: 'a', 1: 'b', 2: 'c', join: function() { return 'join' }}.toString() );
     66    array[item++] = new TestCase( SECTION,
     67                                  "Array.prototype.toString.call({join: function() { return 'join' }})",
     68                                  "join",
     69                                  Array.prototype.toString.call({join: function() { return 'join' }}) );
     70    array[item++] = new TestCase( SECTION,
     71                                  "Array.prototype.toString.call({sort: function() { return 'sort' }})",
     72                                  "[object Object]",
     73                                  Array.prototype.toString.call({sort: function() { return 'sort' }}) );
     74    array[item++] = new TestCase( SECTION,
     75                                  "Array.prototype.toString.call(new Date)",
     76                                  "[object Date]",
     77                                  Array.prototype.toString.call(new Date) );
     78    array[item++] = new TestCase( SECTION,
     79                                  "Number.prototype.join = function() { return 'number join' }; Array.prototype.toString.call(42)",
     80                                  "number join",
     81                                  eval("Number.prototype.join = function() { return 'number join' }; Array.prototype.toString.call(42)") );
     82
    5883    var EXPECT_STRING = "";
    5984    var MYARR = new Array();
     
    6893    array[item++] = new TestCase( SECTION, "MYARR.toString()",  EXPECT_STRING,  MYARR.toString() );
    6994
     95    array[item++] = new TestCase( SECTION,
     96                                  "Array.prototype.join = function() { return 'join' }; [0, 1, 2].toString()",
     97                                  "join",
     98                                  eval("Array.prototype.join = function() { return 'join' }; [0, 1, 2].toString()") );
    7099
    71100    return ( array );
Note: See TracChangeset for help on using the changeset viewer.