KDE JS Test
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS 'abc'.length is 3
PASS (new String('abcd')).length is 4
PASS String('abcde').length is 5
PASS 'abc'.charAt(0) is 'a'
PASS 'abc'.charAt(1) is 'b'
PASS 'abc'.charAt(-1) is ''
PASS 'abc'.charAt(99) is ''
PASS 'abc'.charAt() is 'a'
PASS 'ab'.indexOf('a') is 0
PASS 'ab'.indexOf('b') is 1
PASS 'ab'.indexOf('x') is -1
PASS 'ab'.indexOf('') is 0
PASS ''.indexOf('') is 0
PASS 'ab'.indexOf('a', -1) is 0
PASS 'ab'.indexOf('b', 1) is 1
PASS 'ab'.indexOf('a', 1) is -1
PASS ' '.indexOf('', 1) is 1
PASS String('abc').search(/b/) is 1
PASS String('xyz').search(/b/) is -1
PASS String('abcb').match(/b/) + '' is 'b'
PASS typeof String('abc').match(/b/) is 'object'
PASS 'xyz'.match(/b/) is null
PASS 'xyz'.match(/b/g) is null
PASS String('aabab'.match(/ab/g)) is 'ab,ab'
PASS String('aabab'.match(/(a)(b)/)) is 'ab,a,b'
PASS String('aabab'.match(/(a)(b)/g)) is 'ab,ab'
PASS String('abc'.match(/./g)) is 'a,b,c'
PASS String('abc'.match(/.*/g)) is 'abc,'
PASS var reg = /ab/g; 'aabab'.match(reg); reg.lastIndex is 0
PASS var reg = /ab/g; 'aabab'.match(reg).length is 2
PASS var reg = /ab/g; 'xxx'.match(reg); reg.lastIndex is 0
PASS var reg = /ab/g; 'xxx'.match(reg) is null
PASS myRe=/d(b+)d/g; 'cdbbdbsbz'.match(myRe)[0] is 'dbbd'
PASS 'abcd'.replace(/b./, 'xy') is 'axyd'
PASS 'abcd'.replace('bc', 'x') is 'axd'
PASS 'abcd'.replace('x', 'y') is 'abcd'
PASS 'abcd'.replace(/(ab)(cd)/,'$2$1') is 'cdab'
PASS 'abcd'.replace(/(ab)(cd)/,'$2$1$') is 'cdab$'
PASS 'BEGINabcEND'.replace(/abc/,'x$') is 'BEGINx$END'
PASS f2c('The value is 212F') is 'The value is 100C'
PASS f2c_str is '212F'
PASS f2c_p1 is '212'
PASS f2c_offset is 13
PASS f2c_s is 'The value is 212F'
PASS 'axb'.split('x').length is 2
PASS 'axb'.split('x')[0] is 'a'
PASS 'axb'.split('x')[1] is 'b'
PASS String('abc'.split('')) is 'a,b,c'
PASS String('abc'.split(new RegExp())) is 'a,b,c'
PASS ''.split('').length is 0
PASS 'axb'.split('x', 0).length is 0
PASS 'axb'.split('x', 0)[0] is undefined
PASS 'axb'.split('x', 1).length is 1
PASS 'axb'.split('x', 99).length is 2
PASS 'axb'.split('y') + '' is 'axb'
PASS 'axb'.split('y').length is 1
PASS ''.split('x') + '' is ''
PASS 'abc'.split() + '' is 'abc'
PASS 'axxb'.split(/x/) + '' is 'a,,b'
PASS 'axxb'.split(/x+/) + '' is 'a,b'
PASS 'axxb'.split(/x*/) + '' is 'a,b'
PASS 'abcdef'.slice(2, 5) is 'cde'
PASS 'abcdefghijklmnopqrstuvwxyz1234567890'.slice(-32, -6) is 'efghijklmnopqrstuvwxyz1234'
PASS 'abC1'.toUpperCase() is 'ABC1'
PASS 'AbC2'.toLowerCase() is 'abc2'
PASS 'a'.localeCompare('a') is 0
PASS 'a'.localeCompare('aa') < 0 is true
PASS 'a'.localeCompare('x') < 0 is true
PASS 'x'.localeCompare('a') > 0 is true
PASS ''.localeCompare('') is 0
FAIL ''.localeCompare() should be 0. Was -1.
PASS ''.localeCompare(undefined) is -1
PASS ''.localeCompare(null) is -1
PASS 'a'.localeCompare('') is 1
FAIL 'a'.localeCompare() should be 0. Was -1.
PASS 'abc'[0] is 'a'
PASS 'abc'[-1] is undefined.
PASS 'abc'[-4] is undefined.
PASS 'abc'[10] is undefined.
PASS 'abc'[10] is 'x'
PASS bar is html
PASS successfullyParsed is true
TEST COMPLETE