mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
585 lines
20 KiB
JavaScript
Executable File
585 lines
20 KiB
JavaScript
Executable File
/* -*- Mode: java; tab-width:8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla 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/MPL/
|
|
*
|
|
* 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 JavaScript Engine testing utilities.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Mozilla Foundation.
|
|
* Portions created by the Initial Developer are Copyright (C) 2007
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s): Igor Bukanov
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
gTestfile = 'regress-376773.js';
|
|
|
|
var BUGNUMBER = 376773;
|
|
var summary = 'xmlsimple.stringmethod === xmlsimple.function::stringmethod';
|
|
var actual = '';
|
|
var expect = '';
|
|
var actualcall = '';
|
|
var expectcall = '';
|
|
|
|
printBugNumber(BUGNUMBER);
|
|
START(summary);
|
|
|
|
var nTest = 0;
|
|
var xml = <a>TEXT</a>;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_toString = String.prototype.toString;
|
|
String.prototype.toString = function() {
|
|
actualcall = 'String.prototype.toString called';
|
|
return this.orig_toString();
|
|
};
|
|
|
|
expect = 'TEXT';
|
|
expectcall = 'String.prototype.toString not called';
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.toString();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.function::toString();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.function::toString.call(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.toString = String.prototype.orig_toString;
|
|
delete String.prototype.orig_toString;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_toSource = String.prototype.toSource;
|
|
String.prototype.toSource = function() {
|
|
actualcall = 'String.prototype.toSource called';
|
|
return this.orig_toSource();
|
|
};
|
|
|
|
expect = '<a>TEXT</a>';
|
|
expectcall = 'String.prototype.toSource not called';
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.toSource();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.function::toSource();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.function::toSource.call(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.toSource = String.prototype.orig_toSource;
|
|
delete String.prototype.orig_toSource;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_valueOf = String.prototype.valueOf;
|
|
String.prototype.valueOf = function() {
|
|
actualcall = 'String.prototype.valueOf called';
|
|
return this.orig_valueOf();
|
|
};
|
|
|
|
expect = 'TEXT';
|
|
expectcall = 'String.prototype.valueOf not called';
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.valueOf();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.function::valueOf();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.function::valueOf.call(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.valueOf = String.prototype.orig_valueOf;
|
|
delete String.prototype.orig_valueOf;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_charAt = String.prototype.charAt;
|
|
String.prototype.charAt = function(pos) {
|
|
actualcall = 'String.prototype.charAt called';
|
|
return this.orig_charAt(pos);
|
|
};
|
|
|
|
expect = 'T';
|
|
expectcall = 'String.prototype.charAt called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.charAt(0);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::charAt(0);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::charAt.call(xml, 0);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.charAt = String.prototype.orig_charAt;
|
|
delete String.prototype.orig_charAt;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_charCodeAt = String.prototype.charCodeAt;
|
|
String.prototype.charCodeAt = function(pos) {
|
|
actualcall = 'String.prototype.charCodeAt called';
|
|
return this.orig_charCodeAt(pos);
|
|
};
|
|
|
|
expect = 84;
|
|
expectcall = 'String.prototype.charCodeAt called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.charCodeAt(0);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::charCodeAt(0);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::charCodeAt.call(xml, 0);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.charCodeAt = String.prototype.orig_charCodeAt;
|
|
delete String.prototype.orig_charCodeAt;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_concat = String.prototype.concat;
|
|
String.prototype.concat = function(string1) {
|
|
actualcall = 'String.prototype.concat called';
|
|
return this.orig_concat(string1);
|
|
};
|
|
|
|
expect = 'TEXTtext';
|
|
expectcall = 'String.prototype.concat called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.concat(<b>text</b>);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::concat(<b>text</b>);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::concat.call(xml, <b>text</b>);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.concat = String.prototype.orig_concat;
|
|
delete String.prototype.orig_concat;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_indexOf = String.prototype.indexOf;
|
|
String.prototype.indexOf = function(searchString, position) {
|
|
actualcall = 'String.prototype.indexOf called';
|
|
return this.orig_indexOf(searchString, position);
|
|
};
|
|
|
|
expect = 0;
|
|
expectcall = 'String.prototype.indexOf called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.indexOf('T');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::indexOf('T');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::indexOf.call(xml, 'T');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.indexOf = String.prototype.orig_indexOf;
|
|
delete String.prototype.orig_indexOf;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_lastIndexOf = String.prototype.lastIndexOf;
|
|
String.prototype.lastIndexOf = function(searchString, position) {
|
|
actualcall = 'String.prototype.lastIndexOf called';
|
|
return this.orig_lastIndexOf(searchString, position);
|
|
};
|
|
|
|
expect = 3;
|
|
expectcall = 'String.prototype.lastIndexOf called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.lastIndexOf('T');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::lastIndexOf('T');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::lastIndexOf.call(xml, 'T');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.lastIndexOf = String.prototype.orig_lastIndexOf;
|
|
delete String.prototype.orig_lastIndexOf;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_localeCompare = String.prototype.localeCompare;
|
|
String.prototype.localeCompare = function(that) {
|
|
actualcall = 'String.prototype.localeCompare called';
|
|
return this.orig_localeCompare(that);
|
|
};
|
|
|
|
expect = 0;
|
|
expectcall = 'String.prototype.localeCompare called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.localeCompare(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::localeCompare(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::localeCompare.call(xml, xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.localeCompare = String.prototype.orig_localeCompare;
|
|
delete String.prototype.orig_localeCompare;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_match = String.prototype.match;
|
|
String.prototype.match = function(regexp) {
|
|
actualcall = 'String.prototype.match called';
|
|
return this.orig_match(regexp);
|
|
};
|
|
|
|
expect = ['TEXT'];
|
|
expectcall = 'String.prototype.match called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.match(/TEXT/);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::match(/TEXT/);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.function::match.call(xml, /TEXT/);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.match = String.prototype.orig_match;
|
|
delete String.prototype.orig_match;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_replace = String.prototype.replace;
|
|
String.prototype.replace = function(searchValue, replaceValue) {
|
|
actualcall = 'String.prototype.replace called';
|
|
return this.orig_replace(searchValue, replaceValue);
|
|
};
|
|
|
|
expect = 'TEXT';
|
|
expectcall = 'String.prototype.replace not called';
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.replace(/EXT/, 'ext');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.function::replace(/EXT/, 'ext');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall;
|
|
actual = xml.function::replace.call(xml, /EXT/, 'ext');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.replace = String.prototype.orig_replace;
|
|
delete String.prototype.orig_replace;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_search = String.prototype.search;
|
|
String.prototype.search = function(regexp) {
|
|
actualcall = 'String.prototype.search called';
|
|
return this.orig_search(regexp);
|
|
};
|
|
|
|
expect = 0;
|
|
expectcall = 'String.prototype.search called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.search(/TEXT/);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.search(/called/, 'not called');
|
|
actual = xml.function::search(/TEXT/);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.search(/called/, 'not called');
|
|
actual = xml.function::search.call(xml, /TEXT/);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.search = String.prototype.orig_search;
|
|
delete String.prototype.orig_search;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_slice = String.prototype.slice;
|
|
String.prototype.slice = function(start, end) {
|
|
actualcall = 'String.prototype.slice called';
|
|
return this.orig_slice(start, end);
|
|
};
|
|
|
|
expect = '';
|
|
expectcall = 'String.prototype.slice called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.slice(1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.slice(/called/, 'not called');
|
|
actual = xml.function::slice(1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.slice(/called/, 'not called');
|
|
actual = xml.function::slice.call(xml, 1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.slice = String.prototype.orig_slice;
|
|
delete String.prototype.orig_slice;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_split = String.prototype.split;
|
|
String.prototype.split = function(separator, limit) {
|
|
actualcall = 'String.prototype.split called';
|
|
return this.orig_split(separator, limit);
|
|
};
|
|
|
|
expect = ['T', 'E', 'X', 'T'];
|
|
expectcall = 'String.prototype.split called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.split('');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.split(/called/, 'not called');
|
|
actual = xml.function::split('');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.split(/called/, 'not called');
|
|
actual = xml.function::split.call(xml, '');
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.split = String.prototype.orig_split;
|
|
delete String.prototype.orig_split;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_substr = String.prototype.substr;
|
|
String.prototype.substr = function(start, length) {
|
|
actualcall = 'String.prototype.substr called';
|
|
return this.orig_substr(start, length);
|
|
};
|
|
|
|
expect = 'E';
|
|
expectcall = 'String.prototype.substr called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.substr(1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.substr(/called/, 'not called');
|
|
actual = xml.function::substr(1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.substr(/called/, 'not called');
|
|
actual = xml.function::substr.call(xml, 1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.substr = String.prototype.orig_substr;
|
|
delete String.prototype.orig_substr;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_substring = String.prototype.substring;
|
|
String.prototype.substring = function(start, end) {
|
|
actualcall = 'String.prototype.substring called';
|
|
return this.orig_substring(start, end);
|
|
};
|
|
|
|
expect = '';
|
|
expectcall = 'String.prototype.substring called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.substring(1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.substring(/called/, 'not called');
|
|
actual = xml.function::substring(1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.substring(/called/, 'not called');
|
|
actual = xml.function::substring.call(xml, 1,1);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.substring = String.prototype.orig_substring;
|
|
delete String.prototype.orig_substring;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_toLowerCase = String.prototype.toLowerCase;
|
|
String.prototype.toLowerCase = function() {
|
|
actualcall = 'String.prototype.toLowerCase called';
|
|
return this.orig_toLowerCase();
|
|
};
|
|
|
|
expect = 'text';
|
|
expectcall = 'String.prototype.toLowerCase called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.toLowerCase();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.toLowerCase(/called/, 'not called');
|
|
actual = xml.function::toLowerCase();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.toLowerCase(/called/, 'not called');
|
|
actual = xml.function::toLowerCase.call(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.toLowerCase = String.prototype.orig_toLowerCase;
|
|
delete String.prototype.orig_toLowerCase;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_toLocaleLowerCase = String.prototype.toLocaleLowerCase;
|
|
String.prototype.toLocaleLowerCase = function() {
|
|
actualcall = 'String.prototype.toLocaleLowerCase called';
|
|
return this.orig_toLocaleLowerCase();
|
|
};
|
|
|
|
expect = 'text';
|
|
expectcall = 'String.prototype.toLocaleLowerCase called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.toLocaleLowerCase();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.toLocaleLowerCase(/called/, 'not called');
|
|
actual = xml.function::toLocaleLowerCase();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.toLocaleLowerCase(/called/, 'not called');
|
|
actual = xml.function::toLocaleLowerCase.call(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.toLocaleLowerCase = String.prototype.orig_toLocaleLowerCase;
|
|
delete String.prototype.orig_toLocaleLowerCase;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_toUpperCase = String.prototype.toUpperCase;
|
|
String.prototype.toUpperCase = function() {
|
|
actualcall = 'String.prototype.toUpperCase called';
|
|
return this.orig_toUpperCase();
|
|
};
|
|
|
|
expect = 'TEXT';
|
|
expectcall = 'String.prototype.toUpperCase called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.toUpperCase();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.toUpperCase(/called/, 'not called');
|
|
actual = xml.function::toUpperCase();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.toUpperCase(/called/, 'not called');
|
|
actual = xml.function::toUpperCase.call(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.toUpperCase = String.prototype.orig_toUpperCase;
|
|
delete String.prototype.orig_toUpperCase;
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
String.prototype.orig_toLocaleUpperCase = String.prototype.toLocaleUpperCase;
|
|
String.prototype.toLocaleUpperCase = function() {
|
|
actualcall = 'String.prototype.toLocaleUpperCase called';
|
|
return this.orig_toLocaleUpperCase();
|
|
};
|
|
|
|
expect = 'TEXT';
|
|
expectcall = 'String.prototype.toLocaleUpperCase called';
|
|
|
|
actualcall = expectcall.replace(/called/, 'not called');
|
|
actual = xml.toLocaleUpperCase();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.toLocaleUpperCase(/called/, 'not called');
|
|
actual = xml.function::toLocaleUpperCase();
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
actualcall = expectcall.toLocaleUpperCase(/called/, 'not called');
|
|
actual = xml.function::toLocaleUpperCase.call(xml);
|
|
TEST(++nTest, expectcall + ':' + expect, actualcall + ':' + actual);
|
|
|
|
String.prototype.toLocaleUpperCase = String.prototype.orig_toLocaleUpperCase;
|
|
delete String.prototype.orig_toLocaleUpperCase;
|
|
|
|
var l = <><a>text</a></>;
|
|
expect = 't';
|
|
actual = l.function::charAt.call(l, 0);
|
|
TEST(++nTest, expect, actual);
|
|
|
|
expect = 't';
|
|
with (l) actual = function::charAt(0);
|
|
TEST(++nTest, expect, actual);
|
|
|
|
|
|
END();
|