[webkit-changes] cvs commit: LayoutTests/fast/js/kde/resources
Array.js Boolean.js Date.js Error.js GlobalObject.js
KNOWN_FAILURES Number.js Object.js Prototype.js README
RegExp.js StringObject.js assignments.js base.js cast.js
comment-1.js comment-2.js completion.js conditional.js
const.js constructor_length.js crash-1.js crash-2.js
delete.js empty.js encode_decode_uri.js eval.js evil-n.js
exception_propagation.js exceptions.js function.js
function_arguments.js function_constructor.js
function_length.js garbage-n.js inbuilt_function_proto.js
inbuilt_function_tostring.js iteration.js j-comment-3.js
j-comment-4.js literals.js math.js md5-1.js md5-2.js
object_prototype.js object_prototype_tostring.js operators.js
parse.js prototype_length.js prototype_proto.js scope.js
shell.js statements.js string-1-n.js string-2-n.js var_decl_init.js
Maciej
mjs at opensource.apple.com
Mon Dec 26 15:07:40 PST 2005
mjs 05/12/26 15:07:39
Modified: . ChangeLog
Added: fast/js/kde Array-expected.txt Array.html
Boolean-expected.txt Boolean.html Date-expected.txt
Date.html Error-expected.txt Error.html
GlobalObject-expected.txt GlobalObject.html
Number-expected.txt Number.html Object-expected.txt
Object.html Prototype-expected.txt Prototype.html
RegExp-expected.txt RegExp.html
StringObject-expected.txt StringObject.html
assignments-expected.txt assignments.html
cast-expected.txt cast.html comment-1-expected.txt
comment-1.html comment-2-expected.txt
comment-2.html completion-expected.txt
completion.html conditional-expected.txt
conditional.html const-expected.txt const.html
constructor_length-expected.txt
constructor_length.html crash-1-expected.txt
crash-1.html crash-2-expected.txt crash-2.html
delete-expected.txt delete.html empty-expected.txt
empty.html encode_decode_uri-expected.txt
encode_decode_uri.html eval-expected.txt eval.html
evil-n-expected.txt evil-n.html
exception_propagation-expected.txt
exception_propagation.html exceptions-expected.txt
exceptions.html function-expected.txt function.html
function_arguments-expected.txt
function_arguments.html
function_constructor-expected.txt
function_constructor.html
function_length-expected.txt function_length.html
garbage-n-expected.txt garbage-n.html
inbuilt_function_proto-expected.txt
inbuilt_function_proto.html
inbuilt_function_tostring-expected.txt
inbuilt_function_tostring.html
iteration-expected.txt iteration.html
j-comment-3-expected.txt j-comment-3.html
j-comment-4-expected.txt j-comment-4.html
literals-expected.txt literals.html
math-expected.txt math.html md5-1-expected.txt
md5-1.html md5-2-expected.txt md5-2.html
object_prototype-expected.txt object_prototype.html
object_prototype_tostring-expected.txt
object_prototype_tostring.html
operators-expected.txt operators.html
parse-expected.txt parse.html
prototype_length-expected.txt prototype_length.html
prototype_proto-expected.txt prototype_proto.html
scope-expected.txt scope.html
statements-expected.txt statements.html
string-1-n-expected.txt string-1-n.html
string-2-n-expected.txt string-2-n.html
var_decl_init-expected.txt var_decl_init.html
fast/js/kde/resources Array.js Boolean.js Date.js Error.js
GlobalObject.js KNOWN_FAILURES Number.js Object.js
Prototype.js README RegExp.js StringObject.js
assignments.js base.js cast.js comment-1.js
comment-2.js completion.js conditional.js const.js
constructor_length.js crash-1.js crash-2.js
delete.js empty.js encode_decode_uri.js eval.js
evil-n.js exception_propagation.js exceptions.js
function.js function_arguments.js
function_constructor.js function_length.js
garbage-n.js inbuilt_function_proto.js
inbuilt_function_tostring.js iteration.js
j-comment-3.js j-comment-4.js literals.js math.js
md5-1.js md5-2.js object_prototype.js
object_prototype_tostring.js operators.js parse.js
prototype_length.js prototype_proto.js scope.js
shell.js statements.js string-1-n.js string-2-n.js
var_decl_init.js
Log:
Rubber stamped by Geoff.
- land JavaScript tests from the kde version of kjs
* fast/js/kde/Array-expected.txt: Added.
* fast/js/kde/Array.html: Added.
* fast/js/kde/Boolean-expected.txt: Added.
* fast/js/kde/Boolean.html: Added.
* fast/js/kde/Date-expected.txt: Added.
* fast/js/kde/Date.html: Added.
* fast/js/kde/Error-expected.txt: Added.
* fast/js/kde/Error.html: Added.
* fast/js/kde/GlobalObject-expected.txt: Added.
* fast/js/kde/GlobalObject.html: Added.
* fast/js/kde/Number-expected.txt: Added.
* fast/js/kde/Number.html: Added.
* fast/js/kde/Object-expected.txt: Added.
* fast/js/kde/Object.html: Added.
* fast/js/kde/Prototype-expected.txt: Added.
* fast/js/kde/Prototype.html: Added.
* fast/js/kde/RegExp-expected.txt: Added.
* fast/js/kde/RegExp.html: Added.
* fast/js/kde/StringObject-expected.txt: Added.
* fast/js/kde/StringObject.html: Added.
* fast/js/kde/assignments-expected.txt: Added.
* fast/js/kde/assignments.html: Added.
* fast/js/kde/cast-expected.txt: Added.
* fast/js/kde/cast.html: Added.
* fast/js/kde/comment-1-expected.txt: Added.
* fast/js/kde/comment-1.html: Added.
* fast/js/kde/comment-2-expected.txt: Added.
* fast/js/kde/comment-2.html: Added.
* fast/js/kde/completion-expected.txt: Added.
* fast/js/kde/completion.html: Added.
* fast/js/kde/conditional-expected.txt: Added.
* fast/js/kde/conditional.html: Added.
* fast/js/kde/const-expected.txt: Added.
* fast/js/kde/const.html: Added.
* fast/js/kde/constructor_length-expected.txt: Added.
* fast/js/kde/constructor_length.html: Added.
* fast/js/kde/crash-1-expected.txt: Added.
* fast/js/kde/crash-1.html: Added.
* fast/js/kde/crash-2-expected.txt: Added.
* fast/js/kde/crash-2.html: Added.
* fast/js/kde/delete-expected.txt: Added.
* fast/js/kde/delete.html: Added.
* fast/js/kde/empty-expected.txt: Added.
* fast/js/kde/empty.html: Added.
* fast/js/kde/encode_decode_uri-expected.txt: Added.
* fast/js/kde/encode_decode_uri.html: Added.
* fast/js/kde/eval-expected.txt: Added.
* fast/js/kde/eval.html: Added.
* fast/js/kde/evil-n-expected.txt: Added.
* fast/js/kde/evil-n.html: Added.
* fast/js/kde/exception_propagation-expected.txt: Added.
* fast/js/kde/exception_propagation.html: Added.
* fast/js/kde/exceptions-expected.txt: Added.
* fast/js/kde/exceptions.html: Added.
* fast/js/kde/function-expected.txt: Added.
* fast/js/kde/function.html: Added.
* fast/js/kde/function_arguments-expected.txt: Added.
* fast/js/kde/function_arguments.html: Added.
* fast/js/kde/function_constructor-expected.txt: Added.
* fast/js/kde/function_constructor.html: Added.
* fast/js/kde/function_length-expected.txt: Added.
* fast/js/kde/function_length.html: Added.
* fast/js/kde/garbage-n-expected.txt: Added.
* fast/js/kde/garbage-n.html: Added.
* fast/js/kde/inbuilt_function_proto-expected.txt: Added.
* fast/js/kde/inbuilt_function_proto.html: Added.
* fast/js/kde/inbuilt_function_tostring-expected.txt: Added.
* fast/js/kde/inbuilt_function_tostring.html: Added.
* fast/js/kde/iteration-expected.txt: Added.
* fast/js/kde/iteration.html: Added.
* fast/js/kde/j-comment-3-expected.txt: Added.
* fast/js/kde/j-comment-3.html: Added.
* fast/js/kde/j-comment-4-expected.txt: Added.
* fast/js/kde/j-comment-4.html: Added.
* fast/js/kde/literals-expected.txt: Added.
* fast/js/kde/literals.html: Added.
* fast/js/kde/math-expected.txt: Added.
* fast/js/kde/math.html: Added.
* fast/js/kde/md5-1-expected.txt: Added.
* fast/js/kde/md5-1.html: Added.
* fast/js/kde/md5-2-expected.txt: Added.
* fast/js/kde/md5-2.html: Added.
* fast/js/kde/object_prototype-expected.txt: Added.
* fast/js/kde/object_prototype.html: Added.
* fast/js/kde/object_prototype_tostring-expected.txt: Added.
* fast/js/kde/object_prototype_tostring.html: Added.
* fast/js/kde/operators-expected.txt: Added.
* fast/js/kde/operators.html: Added.
* fast/js/kde/parse-expected.txt: Added.
* fast/js/kde/parse.html: Added.
* fast/js/kde/prototype_length-expected.txt: Added.
* fast/js/kde/prototype_length.html: Added.
* fast/js/kde/prototype_proto-expected.txt: Added.
* fast/js/kde/prototype_proto.html: Added.
* fast/js/kde/resources/Array.js: Added.
* fast/js/kde/resources/Boolean.js: Added.
* fast/js/kde/resources/Date.js: Added.
* fast/js/kde/resources/Error.js: Added.
* fast/js/kde/resources/GlobalObject.js: Added.
* fast/js/kde/resources/KNOWN_FAILURES: Added.
* fast/js/kde/resources/Number.js: Added.
* fast/js/kde/resources/Object.js: Added.
* fast/js/kde/resources/Prototype.js: Added.
* fast/js/kde/resources/README: Added.
* fast/js/kde/resources/RegExp.js: Added.
* fast/js/kde/resources/StringObject.js: Added.
* fast/js/kde/resources/assignments.js: Added.
* fast/js/kde/resources/base.js: Added.
* fast/js/kde/resources/cast.js: Added.
* fast/js/kde/resources/comment-1.js: Added.
* fast/js/kde/resources/comment-2.js: Added.
* fast/js/kde/resources/completion.js: Added.
* fast/js/kde/resources/conditional.js: Added.
* fast/js/kde/resources/const.js: Added.
* fast/js/kde/resources/constructor_length.js: Added.
* fast/js/kde/resources/crash-1.js: Added.
* fast/js/kde/resources/crash-2.js: Added.
* fast/js/kde/resources/delete.js: Added.
* fast/js/kde/resources/empty.js: Added.
* fast/js/kde/resources/encode_decode_uri.js: Added.
* fast/js/kde/resources/eval.js: Added.
* fast/js/kde/resources/evil-n.js: Added.
* fast/js/kde/resources/exception_propagation.js: Added.
* fast/js/kde/resources/exceptions.js: Added.
* fast/js/kde/resources/function.js: Added.
* fast/js/kde/resources/function_arguments.js: Added.
* fast/js/kde/resources/function_constructor.js: Added.
* fast/js/kde/resources/function_length.js: Added.
* fast/js/kde/resources/garbage-n.js: Added.
* fast/js/kde/resources/inbuilt_function_proto.js: Added.
* fast/js/kde/resources/inbuilt_function_tostring.js: Added.
* fast/js/kde/resources/iteration.js: Added.
* fast/js/kde/resources/j-comment-3.js: Added.
* fast/js/kde/resources/j-comment-4.js: Added.
* fast/js/kde/resources/literals.js: Added.
* fast/js/kde/resources/math.js: Added.
* fast/js/kde/resources/md5-1.js: Added.
* fast/js/kde/resources/md5-2.js: Added.
* fast/js/kde/resources/object_prototype.js: Added.
* fast/js/kde/resources/object_prototype_tostring.js: Added.
* fast/js/kde/resources/operators.js: Added.
* fast/js/kde/resources/parse.js: Added.
* fast/js/kde/resources/prototype_length.js: Added.
* fast/js/kde/resources/prototype_proto.js: Added.
* fast/js/kde/resources/scope.js: Added.
* fast/js/kde/resources/shell.js: Added.
* fast/js/kde/resources/statements.js: Added.
* fast/js/kde/resources/string-1-n.js: Added.
* fast/js/kde/resources/string-2-n.js: Added.
* fast/js/kde/resources/var_decl_init.js: Added.
* fast/js/kde/scope-expected.txt: Added.
* fast/js/kde/scope.html: Added.
* fast/js/kde/statements-expected.txt: Added.
* fast/js/kde/statements.html: Added.
* fast/js/kde/string-1-n-expected.txt: Added.
* fast/js/kde/string-1-n.html: Added.
* fast/js/kde/string-2-n-expected.txt: Added.
* fast/js/kde/string-2-n.html: Added.
* fast/js/kde/var_decl_init-expected.txt: Added.
* fast/js/kde/var_decl_init.html: Added.
Revision Changes Path
1.186 +167 -0 LayoutTests/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/LayoutTests/ChangeLog,v
retrieving revision 1.185
retrieving revision 1.186
diff -u -r1.185 -r1.186
--- ChangeLog 25 Dec 2005 05:11:41 -0000 1.185
+++ ChangeLog 26 Dec 2005 23:07:04 -0000 1.186
@@ -1,3 +1,170 @@
+2005-12-26 Maciej Stachowiak <mjs at apple.com>
+
+ Rubber stamped by Geoff.
+
+ - land JavaScript tests from the kde version of kjs
+
+ * fast/js/kde/Array-expected.txt: Added.
+ * fast/js/kde/Array.html: Added.
+ * fast/js/kde/Boolean-expected.txt: Added.
+ * fast/js/kde/Boolean.html: Added.
+ * fast/js/kde/Date-expected.txt: Added.
+ * fast/js/kde/Date.html: Added.
+ * fast/js/kde/Error-expected.txt: Added.
+ * fast/js/kde/Error.html: Added.
+ * fast/js/kde/GlobalObject-expected.txt: Added.
+ * fast/js/kde/GlobalObject.html: Added.
+ * fast/js/kde/Number-expected.txt: Added.
+ * fast/js/kde/Number.html: Added.
+ * fast/js/kde/Object-expected.txt: Added.
+ * fast/js/kde/Object.html: Added.
+ * fast/js/kde/Prototype-expected.txt: Added.
+ * fast/js/kde/Prototype.html: Added.
+ * fast/js/kde/RegExp-expected.txt: Added.
+ * fast/js/kde/RegExp.html: Added.
+ * fast/js/kde/StringObject-expected.txt: Added.
+ * fast/js/kde/StringObject.html: Added.
+ * fast/js/kde/assignments-expected.txt: Added.
+ * fast/js/kde/assignments.html: Added.
+ * fast/js/kde/cast-expected.txt: Added.
+ * fast/js/kde/cast.html: Added.
+ * fast/js/kde/comment-1-expected.txt: Added.
+ * fast/js/kde/comment-1.html: Added.
+ * fast/js/kde/comment-2-expected.txt: Added.
+ * fast/js/kde/comment-2.html: Added.
+ * fast/js/kde/completion-expected.txt: Added.
+ * fast/js/kde/completion.html: Added.
+ * fast/js/kde/conditional-expected.txt: Added.
+ * fast/js/kde/conditional.html: Added.
+ * fast/js/kde/const-expected.txt: Added.
+ * fast/js/kde/const.html: Added.
+ * fast/js/kde/constructor_length-expected.txt: Added.
+ * fast/js/kde/constructor_length.html: Added.
+ * fast/js/kde/crash-1-expected.txt: Added.
+ * fast/js/kde/crash-1.html: Added.
+ * fast/js/kde/crash-2-expected.txt: Added.
+ * fast/js/kde/crash-2.html: Added.
+ * fast/js/kde/delete-expected.txt: Added.
+ * fast/js/kde/delete.html: Added.
+ * fast/js/kde/empty-expected.txt: Added.
+ * fast/js/kde/empty.html: Added.
+ * fast/js/kde/encode_decode_uri-expected.txt: Added.
+ * fast/js/kde/encode_decode_uri.html: Added.
+ * fast/js/kde/eval-expected.txt: Added.
+ * fast/js/kde/eval.html: Added.
+ * fast/js/kde/evil-n-expected.txt: Added.
+ * fast/js/kde/evil-n.html: Added.
+ * fast/js/kde/exception_propagation-expected.txt: Added.
+ * fast/js/kde/exception_propagation.html: Added.
+ * fast/js/kde/exceptions-expected.txt: Added.
+ * fast/js/kde/exceptions.html: Added.
+ * fast/js/kde/function-expected.txt: Added.
+ * fast/js/kde/function.html: Added.
+ * fast/js/kde/function_arguments-expected.txt: Added.
+ * fast/js/kde/function_arguments.html: Added.
+ * fast/js/kde/function_constructor-expected.txt: Added.
+ * fast/js/kde/function_constructor.html: Added.
+ * fast/js/kde/function_length-expected.txt: Added.
+ * fast/js/kde/function_length.html: Added.
+ * fast/js/kde/garbage-n-expected.txt: Added.
+ * fast/js/kde/garbage-n.html: Added.
+ * fast/js/kde/inbuilt_function_proto-expected.txt: Added.
+ * fast/js/kde/inbuilt_function_proto.html: Added.
+ * fast/js/kde/inbuilt_function_tostring-expected.txt: Added.
+ * fast/js/kde/inbuilt_function_tostring.html: Added.
+ * fast/js/kde/iteration-expected.txt: Added.
+ * fast/js/kde/iteration.html: Added.
+ * fast/js/kde/j-comment-3-expected.txt: Added.
+ * fast/js/kde/j-comment-3.html: Added.
+ * fast/js/kde/j-comment-4-expected.txt: Added.
+ * fast/js/kde/j-comment-4.html: Added.
+ * fast/js/kde/literals-expected.txt: Added.
+ * fast/js/kde/literals.html: Added.
+ * fast/js/kde/math-expected.txt: Added.
+ * fast/js/kde/math.html: Added.
+ * fast/js/kde/md5-1-expected.txt: Added.
+ * fast/js/kde/md5-1.html: Added.
+ * fast/js/kde/md5-2-expected.txt: Added.
+ * fast/js/kde/md5-2.html: Added.
+ * fast/js/kde/object_prototype-expected.txt: Added.
+ * fast/js/kde/object_prototype.html: Added.
+ * fast/js/kde/object_prototype_tostring-expected.txt: Added.
+ * fast/js/kde/object_prototype_tostring.html: Added.
+ * fast/js/kde/operators-expected.txt: Added.
+ * fast/js/kde/operators.html: Added.
+ * fast/js/kde/parse-expected.txt: Added.
+ * fast/js/kde/parse.html: Added.
+ * fast/js/kde/prototype_length-expected.txt: Added.
+ * fast/js/kde/prototype_length.html: Added.
+ * fast/js/kde/prototype_proto-expected.txt: Added.
+ * fast/js/kde/prototype_proto.html: Added.
+ * fast/js/kde/resources/Array.js: Added.
+ * fast/js/kde/resources/Boolean.js: Added.
+ * fast/js/kde/resources/Date.js: Added.
+ * fast/js/kde/resources/Error.js: Added.
+ * fast/js/kde/resources/GlobalObject.js: Added.
+ * fast/js/kde/resources/KNOWN_FAILURES: Added.
+ * fast/js/kde/resources/Number.js: Added.
+ * fast/js/kde/resources/Object.js: Added.
+ * fast/js/kde/resources/Prototype.js: Added.
+ * fast/js/kde/resources/README: Added.
+ * fast/js/kde/resources/RegExp.js: Added.
+ * fast/js/kde/resources/StringObject.js: Added.
+ * fast/js/kde/resources/assignments.js: Added.
+ * fast/js/kde/resources/base.js: Added.
+ * fast/js/kde/resources/cast.js: Added.
+ * fast/js/kde/resources/comment-1.js: Added.
+ * fast/js/kde/resources/comment-2.js: Added.
+ * fast/js/kde/resources/completion.js: Added.
+ * fast/js/kde/resources/conditional.js: Added.
+ * fast/js/kde/resources/const.js: Added.
+ * fast/js/kde/resources/constructor_length.js: Added.
+ * fast/js/kde/resources/crash-1.js: Added.
+ * fast/js/kde/resources/crash-2.js: Added.
+ * fast/js/kde/resources/delete.js: Added.
+ * fast/js/kde/resources/empty.js: Added.
+ * fast/js/kde/resources/encode_decode_uri.js: Added.
+ * fast/js/kde/resources/eval.js: Added.
+ * fast/js/kde/resources/evil-n.js: Added.
+ * fast/js/kde/resources/exception_propagation.js: Added.
+ * fast/js/kde/resources/exceptions.js: Added.
+ * fast/js/kde/resources/function.js: Added.
+ * fast/js/kde/resources/function_arguments.js: Added.
+ * fast/js/kde/resources/function_constructor.js: Added.
+ * fast/js/kde/resources/function_length.js: Added.
+ * fast/js/kde/resources/garbage-n.js: Added.
+ * fast/js/kde/resources/inbuilt_function_proto.js: Added.
+ * fast/js/kde/resources/inbuilt_function_tostring.js: Added.
+ * fast/js/kde/resources/iteration.js: Added.
+ * fast/js/kde/resources/j-comment-3.js: Added.
+ * fast/js/kde/resources/j-comment-4.js: Added.
+ * fast/js/kde/resources/literals.js: Added.
+ * fast/js/kde/resources/math.js: Added.
+ * fast/js/kde/resources/md5-1.js: Added.
+ * fast/js/kde/resources/md5-2.js: Added.
+ * fast/js/kde/resources/object_prototype.js: Added.
+ * fast/js/kde/resources/object_prototype_tostring.js: Added.
+ * fast/js/kde/resources/operators.js: Added.
+ * fast/js/kde/resources/parse.js: Added.
+ * fast/js/kde/resources/prototype_length.js: Added.
+ * fast/js/kde/resources/prototype_proto.js: Added.
+ * fast/js/kde/resources/scope.js: Added.
+ * fast/js/kde/resources/shell.js: Added.
+ * fast/js/kde/resources/statements.js: Added.
+ * fast/js/kde/resources/string-1-n.js: Added.
+ * fast/js/kde/resources/string-2-n.js: Added.
+ * fast/js/kde/resources/var_decl_init.js: Added.
+ * fast/js/kde/scope-expected.txt: Added.
+ * fast/js/kde/scope.html: Added.
+ * fast/js/kde/statements-expected.txt: Added.
+ * fast/js/kde/statements.html: Added.
+ * fast/js/kde/string-1-n-expected.txt: Added.
+ * fast/js/kde/string-1-n.html: Added.
+ * fast/js/kde/string-2-n-expected.txt: Added.
+ * fast/js/kde/string-2-n.html: Added.
+ * fast/js/kde/var_decl_init-expected.txt: Added.
+ * fast/js/kde/var_decl_init.html: Added.
+
2005-12-24 Mitz Pettel <opendarwin.org at mitzpettel.com>
Reviewed by eseidel.
1.1 LayoutTests/fast/js/kde/Array-expected.txt
Index: Array-expected.txt
===================================================================
PASS Array().length is 0
PASS (new Array()).length is 0
PASS (new Array(3)).length is 3
PASS (new Array(11, 22)).length is 2
PASS (new Array(11, 22))[0] is 11
PASS Array(11, 22)[1] is 22
PASS (new Array(11, 22))[3] is undefined.
PASS String(new Array(11, 22)) is '11,22'
PASS var a = []; a[0] = 33; a[0] is 33
PASS var a = []; a[0] = 33; a.length is 1
PASS var a = [11, 22]; a.length = 1; String(a); is '11'
PASS var a = [11, 22]; a.length = 1; a.length; is 1
FAIL caught; should be true. Was false
FAIL ename should be RangeError. Was
PASS caught; is true
PASS ename is 'RangeError'
PASS var a = [11, 22]; a.length = 1; a[1]; is undefined.
PASS Array().toString() is ''
PASS Array(3).toString() is ',,'
PASS Array(11, 22).toString() is '11,22'
PASS String(Array(11, 22).concat(33)) is '11,22,33'
PASS String(Array(2).concat(33, 44)) is ',,33,44'
PASS String(Array(2).concat(Array(2))) is ',,,'
PASS String(Array(11,22).concat(Array(33,44))) is '11,22,33,44'
PASS String(Array(1,2).concat(3,Array(4,5))) is '1,2,3,4,5'
PASS var a = new Array(1,2,3); delete a[1]; String(a.concat(4)) is '1,,3,4'
PASS [1,2,3,4].slice(1, 3).toString() is '2,3'
PASS [1,2,3,4].slice(-3, -1).toString() is '2,3'
PASS [1,2].slice(-9, 0).length is 0
PASS [1,2].slice(1).toString() is '2'
PASS [1,2].slice().toString() is '1,2'
PASS (new Array('a')).length is 1
PASS (new Array('a'))[0] is 'a'
PASS (new Array('a'))[1] is undefined.
PASS Array('a').length is 1
PASS Array('a')[0] is 'a'
PASS String(Array()) is ''
PASS String(Array('a','b')) is 'a,b'
PASS [].length is 0
PASS ['a'].length is 1
PASS ['a'][0] is 'a'
PASS ['a',,'c'][2] is 'c'
PASS forInSum([]) is ''
PASS forInSum(Array()) is ''
PASS forInSum(Array('a')) is 'a'
PASS forInSum(a0) is ''
PASS forInSum(a1) is 'a'
PASS String([3,1,'2'].sort()) is '1,2,3'
PASS String([,'x','aa'].sort()) is 'aa,x,'
PASS var a = ['aa', 'b', 'cccc', 'ddd']; String(a.sort(comp)) is 'b,aa,ddd,cccc'
PASS [0, Infinity].sort(function(a, b) { return a - b }).toString() is '0,Infinity'
PASS [].unshift('a') is 1
PASS ['c'].unshift('a', 'b') is 3
PASS var a = []; a.unshift('a'); String(a) is 'a'
PASS var a = ['c']; a.unshift('a', 'b'); String(a) is 'a,b,c'
PASS String(['a', 'b', 'c'].splice(1, 2, 'x', 'y')) is 'b,c'
FAIL arr.length should be 40. Was 0
FAIL arr[maxint] should be test. Was undefined
FAIL arr.length should be 40. Was 0
PASS arr[maxint] is undefined
PASS arr.length is maxint
PASS arr[maxint-1] is "test2"
FAIL propnames.length should be 3. Was 4
PASS propnames[0] is '0'
PASS propnames[1] is '1'
FAIL propnames[2] should be 2. Was 1
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/Array.html
Index: Array.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/Array.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/Boolean-expected.txt
Index: Boolean-expected.txt
===================================================================
PASS Boolean() is false
PASS Boolean(true) is true
PASS Boolean(false) is false
PASS (new Boolean(true)).valueOf() is true
PASS (new Boolean(false)).valueOf() is false
PASS (new Boolean(Boolean(true))).valueOf() is true
PASS true.valueOf() === true is true
PASS false.toString() === 'false' is true
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/Boolean.html
Index: Boolean.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/Boolean.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/Date-expected.txt
Index: Date-expected.txt
===================================================================
Start Of Test
PASS isNaN(Date.prototype.valueOf()) is true
PASS d.getMinutes() is 45
PASS d.getUTCMinutes() is 45
PASS d.getDay() is 6
PASS d.getMonth() is 2
PASS d.getFullYear() is 2002
PASS Number(d) is 1017492323515
PASS Boolean(d) is true
PASS (new Date(100)).valueOf() is 100
PASS (new Date(true)).valueOf() is 1
PASS (new Date(false)).valueOf() is 0
PASS typeof (new Date()).toString() is 'string'
PASS typeof ('' + new Date()) is 'string'
PASS typeof (new Date() + new Date()) is 'string'
PASS isNaN(Number(new Date('foo'))) is true
PASS new Date(10001) - new Date(10000) is 1
PASS '' - new Date(10000) is -10000
PASS 2 * new Date(10000) is 20000
PASS var d = new Date(); d == String(d) is true
PASS d0.getHours() is 0
PASS d1.getUTCHours() is 0
PASS d1.getUTCHours() is 11
PASS d2.getMilliseconds() is 11
PASS d2.getSeconds() is 11
PASS d2.getMilliseconds() is 22
PASS d2.getMinutes() is 11
PASS d2.getSeconds() is 22
PASS d2.getMilliseconds() is 33
PASS d2.getHours() is 11
PASS d2.getMinutes() is 22
PASS d2.getSeconds() is 33
PASS d2.getMilliseconds() is 44
PASS d2.getMonth() is 3
PASS d2.getDate() is 20
PASS d2.getFullYear() is 1976
PASS d2.getMonth() is 3
PASS d2.getDate() is 20
PASS d2.setYear(0), d2.getFullYear() is 1900
PASS d2.setYear(1), d2.getFullYear() is 1901
PASS d2.setYear(99), d2.getFullYear() is 1999
FAIL d2.setYear(100), d2.getFullYear() should be 100. Was 2000
PASS d2.setYear(2050), d2.getFullYear() is 2050
FAIL d2.setYear(1899), d2.getFullYear() should be 1899. Was 3799
PASS d2.setYear(2000), d2.getFullYear() is 2000
PASS d2.setYear(2100), d2.getFullYear() is 2100
PASS dateRef.getDay() is 6
PASS dateRef.getDate() is 5
PASS dateRef.getMonth() is 10
PASS dateRef.getYear() is 94
PASS dateRef.getFullYear() is 1994
PASS dateRef.getMinutes() is 15
PASS dateRef.getSeconds() is 30
PASS dateRef.getUTCDay() is 6
PASS dateRef.getUTCDate() is 5
PASS dateRef.getUTCMonth() is 10
PASS dateRef.getUTCFullYear() is 1994
PASS dateRef.getUTCHours() is 13
PASS dateRef.getUTCMinutes() is 15
PASS dateRef.getUTCSeconds() is 30
FAIL d.toUTCString() should be Sat, 05 Nov 1994 13:15:30 GMT. Was Invalid Date
FAIL d.toUTCString().replace('GMT', '+0000') should be Sat, 05 Nov 1994 13:15:30 +0000. Was Invalid Date
FAIL dateRef.getDay() should be 4. Was 3
FAIL dateRef.getDate() should be 5. Was 4
PASS dateRef.getMonth() is 10
PASS dateRef.getFullYear() is 2065
PASS dateRef.getMinutes() is 15
PASS dateRef.getSeconds() is 30
FAIL dateRef.getUTCDay() should be 4. Was 3
FAIL dateRef.getUTCDate() should be 5. Was 4
PASS dateRef.getUTCMonth() is 10
PASS dateRef.getUTCFullYear() is 2065
PASS dateRef.getUTCHours() is 13
PASS dateRef.getUTCMinutes() is 15
PASS dateRef.getUTCSeconds() is 30
FAIL dateRef.getDay() should be 3. Was 2
FAIL dateRef.getDate() should be 5. Was 4
PASS dateRef.getMonth() is 10
PASS dateRef.getFullYear() is 2064
PASS dateRef.getMinutes() is 15
PASS dateRef.getSeconds() is 30
FAIL dateRef.getUTCDay() should be 3. Was 2
FAIL dateRef.getUTCDate() should be 5. Was 4
PASS dateRef.getUTCMonth() is 10
PASS dateRef.getUTCFullYear() is 2064
PASS dateRef.getUTCHours() is 13
PASS dateRef.getUTCMinutes() is 15
PASS dateRef.getUTCSeconds() is 30
FAIL d.toUTCString().replace('GMT', '+0000') should be Tue, 05 Nov 2024 13:15:30 +0000. Was Invalid Date
FAIL d.toUTCString().replace('GMT', '+0000') should be Mon, 05 Nov 2040 13:15:30 +0000. Was Invalid Date
FAIL d.toUTCString().replace('GMT', '+0000') should be Fri, 05 Nov 2100 13:15:30 +0000. Was Invalid Date
FAIL d.toUTCString().replace('GMT', '+0000') should be Thu, 04 Nov 2004 22:15:30 +0000. Was Invalid Date
PASS (new Date('Dec 25 1995 1:30 PM UTC')).valueOf() is 819898200000
PASS (new Date('Dec 25 1995 1:30 pm UTC')).valueOf() is 819898200000
PASS (new Date('Dec 25 1995 1:30 AM UTC')).valueOf() is 819855000000
PASS (new Date('Dec 25 1995 1:30 am UTC')).valueOf() is 819855000000
PASS (new Date('Dec 25 1995 12:00 PM UTC')).valueOf() is 819892800000
PASS (new Date('Dec 25 1995 12:00 AM UTC')).valueOf() is 819849600000
PASS (new Date('Dec 25 1995 00:00 AM UTC')).valueOf() is 819849600000
PASS (new Date('Dec 25 1995 00:00 PM UTC')).valueOf() is 819892800000
PASS isNaN(new Date('Dec 25 1995 13:30 AM UTC')).valueOf() is true
PASS new Date('Sat, 01 Dec 2000 08:00:00 GMT').getMonth() is 11
PASS new Date('01 Jan 99 22:00 +0100').getFullYear() is 1999
PASS new Date('May 09 1999 13:12:40 GMT').getDate() is 9
PASS new Date('Wednesday February 09 1999 13:12:40 GMT').getMonth() is 1
PASS new Date('Wednesday January 09 1999 13:12:40 GMT').getFullYear() is 1999
PASS new Date('Wednesday January 09 13:12:40 GMT 1999').getFullYear() is 1999
PASS new Date('Wednesday January 06 13:12:40 GMT 2100').getFullYear() is 2100
PASS (new Date('\n21\rFeb\f\v\t 2004')).getFullYear() is 2004
PASS (new Date('Dec 25 1995 gmt')).valueOf() is 819849600000
PASS (new Date('Dec 25 1995 utc')).valueOf() is 819849600000
PASS new Date('3/31/2005').getDate() is 31
PASS new Date('3/31/2005').getHours() is 0
PASS new Date('7/31/2005').getHours() is 0
PASS new Date('3/31/2005 GMT').getFullYear() is 2005
PASS new Date('3/31/2005 12:45:15').getDate() is 31
PASS new Date('3/31/2005 12:45:15').getMonth() is 2
PASS new Date('3/31/2005 12:45:15').getSeconds() is 15
PASS new Date('2003/02/03').getMonth() is 1
PASS new Date('2003/02/03 02:01:04 UTC').getSeconds() is 4
PASS jul27Num is Date.parse(jul27Str).valueOf()
PASS typeof Date.parse(0) is 'number'
PASS isNaN(Date.parse(0)) is true
PASS Date.parse(new String(jul27Str)).valueOf() is jul27Num
PASS isNaN(Number(new Date('01 ANF 2000'))) is true
PASS isNaN(Number(new Date('ANF 01 2000'))) is true
PASS oldHours is d.getHours()
PASS Date.UTC(1800, 0, 1) is -5364662400000
PASS Date.UTC(1800, 2, 1) is -5359564800000
PASS Date.UTC(1899, 0, 1) is -2240524800000
PASS Date.UTC(1900, 0, 1) is -2208988800000
PASS Date.UTC(1960, 0, 1) is -315619200000
PASS Date.UTC(1970, 0, 1) is 0
PASS Date.UTC(3000, 0, 1) is 32503680000000
PASS (new Date(-5364662400000)).valueOf() is -5364662400000
PASS (new Date(-2240524800000)).valueOf() is -2240524800000
PASS (new Date(-2208988800000)).valueOf() is -2208988800000
PASS (new Date(-315619200000)).valueOf() is -315619200000
PASS (new Date(0)).valueOf() is 0
PASS (new Date(32503680000000)).valueOf() is 32503680000000
PASS d.getDay() is 5
PASS d.getYear() == 1100 || d.getYear() == 3000 is true
PASS d.getFullYear() is 3000
PASS d.getDay() is 3
PASS d.getHours() is 0
PASS new Date('3/31/2099').getFullYear() is 2099
PASS new Date('3/31/2099').getMonth() is 2
PASS d.valueOf() is 32503680000000
PASS d.getUTCDay() is 3
PASS d.getUTCHours() is 0
PASS d.getFullYear() is 1899
PASS d.getYear() == -1 || d.getYear() == 1899 is true
PASS d.getDay() is 0
PASS d.getHours() is 0
PASS d.getUTCDay() is 3
PASS d.getUTCDay() is 0
PASS d.toUTCString().replace('GMT', '+0000') is 'Sun, 01 Jan 1899 00:00:00 +0000'
PASS Number(new Date(8.64E15)) is 8.64E15
PASS Number(new Date(-8.64E15)) is -8.64E15
PASS isNaN(new Date(8.6400001E15)) is true
PASS isNaN(new Date(-8.6400001E15)) is true
PASS (new Date('January29,2005')).getDate() is 29
FAIL (new Date('12/25/1995 ::')).valueOf() should be 819874800000. Was NaN
End Of Test
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/Date.html
Index: Date.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/Date.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/Error-expected.txt
Index: Error-expected.txt
===================================================================
PASS Error('msg').message is 'msg'
PASS (new Error('msg')).message is 'msg'
PASS (new Error('msg')).name is 'Error'
PASS Object.prototype.toString.apply(Error()) is '[object Error]'
PASS Object.prototype.toString.apply(Error) is '[object Function]'
PASS Object.prototype.toString.apply(EvalError) is '[object Function]'
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/Error.html
Index: Error.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/Error.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/GlobalObject-expected.txt
Index: GlobalObject-expected.txt
===================================================================
PASS h.charCodeAt(1) is 239
PASS u.charCodeAt(1) is 4660
PASS escape(h) is 'a%EFc'
PASS escape(u) is 'a%u1234c'
PASS escape(z) is '%00'
PASS unescape(escape(h)) is h
PASS unescape(escape(u)) is u
PASS unescape(escape(z)) is z
PASS isNaN(NaN) is true
PASS isNaN('NaN') is true
PASS isNaN('1') is false
PASS isFinite(1) is true
PASS isFinite('1') is true
PASS isFinite('a') is false
PASS isNaN(parseInt("Hello", 8)) is true
PASS isNaN(parseInt("FFF", 10)) is true
PASS isNaN(parseInt(".5", 10)) is true
PASS isFinite(Infinity) is false
PASS isFinite('Infinity') is false
PASS isNaN(parseInt()) is true
PASS isNaN(parseInt('')) is true
PASS isNaN(parseInt(' ')) is true
PASS isNaN(parseInt('a')) is true
PASS parseInt(1) is 1
PASS parseInt(1234567890123456) is 1234567890123456
PASS parseInt(1.2) is 1
PASS parseInt(' 2.3') is 2
PASS parseInt('0x10') is 16
PASS parseInt('11', 0) is 11
PASS parseInt('F', 16) is 15
PASS isNaN(parseInt('10', 40)) is true
PASS parseInt('3x') is 3
PASS parseInt('3 x') is 3
PASS isNaN(parseInt('Infinity')) is true
PASS parseInt("15") is 15
PASS parseInt("017") is 15
PASS parseInt("0xf") is 15
PASS parseInt("15", 0) is 15
PASS parseInt("15", 10) is 15
PASS parseInt("F", 16) is 15
PASS parseInt("17", 8) is 15
PASS parseInt("15.99", 10) is 15
PASS parseInt("FXX123", 16) is 15
PASS parseInt("1111", 2) is 15
PASS parseInt("15*3", 10) is 15
PASS parseInt("0x7", 10) is 0
PASS parseInt("1x7", 10) is 1
PASS isNaN(parseFloat()) is true
PASS isNaN(parseFloat('')) is true
PASS isNaN(parseFloat(' ')) is true
PASS isNaN(parseFloat('a')) is true
PASS parseFloat(1) is 1
PASS parseFloat(' 2.3') is 2.3
PASS parseFloat('3.1 x', 3) is 3.1
PASS parseFloat('3.1x', 3) is 3.1
PASS isFinite(parseFloat('Infinity')) is false
PASS delete NaN is false
PASS delete Infinity is false
PASS delete undefined is false
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/GlobalObject.html
Index: GlobalObject.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/GlobalObject.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/Number-expected.txt
Index: Number-expected.txt
===================================================================
PASS Number() is 0
PASS Number(1) is 1
PASS Number(1.1) is 1.1
PASS Number('1.2') is 1.2
PASS isNaN(Number('a')) is true
PASS (new Number()).valueOf() is 0
PASS (new Number(.4)).valueOf() is 0.4
PASS (new Number('1.')).valueOf() is 1
PASS isNaN(new Number('a')) is true
PASS isNaN(Number.NaN) is true
PASS Number.NEGATIVE_INFINITY is -Infinity
PASS Number.POSITIVE_INFINITY is Infinity
PASS (1).toString() is '1'
PASS typeof (1).toString() is 'string'
PASS (10).toString(16) is 'a'
FAIL (8.5).toString(16) should be 8.8. Was 8
FAIL (-8.5).toString(16) should be -8.8. Was fffffff8
FAIL Number.NaN.toString(16) should be NaN. Was 0
FAIL Number.POSITIVE_INFINITY.toString(16) should be Infinity. Was 0
FAIL Number.NEGATIVE_INFINITY.toString(16) should be -Infinity. Was 0
FAIL Number.MAX_VALUE.toString(2).length should be 1024. Was 1
PASS (1).valueOf() is 1
PASS typeof (1).valueOf() is 'number'
PASS Number(1234.567).toFixed(0) is "1235"
1.1 LayoutTests/fast/js/kde/Number.html
Index: Number.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/Number.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/Object-expected.txt
Index: Object-expected.txt
===================================================================
PASS typeof Object() is 'object'
PASS var o = Object(); o.x = 11; o.x; is 11
PASS Object(1).valueOf() is 1
PASS Object(true).valueOf() is true
PASS Object('s').valueOf() is 's'
PASS typeof (new Object()) is 'object'
PASS (new Object(1)).valueOf() is 1
PASS (new Object(true)).valueOf() is true
PASS (new Object('s')).valueOf() is 's'
PASS String(Object()) is '[object Object]'
PASS Object().toString() is '[object Object]'
PASS String(Object().valueOf()) is '[object Object]'
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/Object.html
Index: Object.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/Object.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/Prototype-expected.txt
Index: Prototype-expected.txt
===================================================================
PASS s.area() is 9
PASS b.name is 'a book'
PASS b.author is 'Fred'
PASS delete Boolean.prototype is false
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/Prototype.html
Index: Prototype.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/Prototype.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/RegExp-expected.txt
Index: RegExp-expected.txt
===================================================================
PASS (new RegExp()).source is ''
PASS Boolean(new RegExp()) is true
PASS isNaN(Number(new RegExp())) is true
PASS RegExp(/x/).source is 'x'
PASS RegExp('x', 'g').global is true
PASS RegExp('x').source is 'x'
PASS new RegExp('x').source is 'x'
PASS (/a/).global is false
PASS typeof (/a/).global is 'boolean'
PASS rg.global is true
PASS (/a/).ignoreCase is false
PASS ri.ignoreCase is true
PASS (/a/).multiline is false
PASS rm.multiline is true
PASS rg.toString() is '/a/g'
PASS ri.toString() is '/a/i'
PASS rm.toString() is '/a/m'
PASS rg.global is true
PASS ri.ignoreCase is true
PASS rm.multiline is true
PASS Boolean(/a/.test) is true
PASS /(b)c/.exec('abcd').toString() is "bc,b"
PASS /(b)c/.exec('abcd').length is 2
PASS /(b)c/.exec('abcd').index is 1
PASS /(b)c/.exec('abcd').input is 'abcd'
PASS rs.source is 'foo'
PASS var r = new RegExp(/x/); r.global=true; r.lastIndex = -1; typeof r.test('a') is 'boolean'
PASS 'abcdefghi'.match(/(abc)def(ghi)/).toString() is 'abcdefghi,abc,ghi'
PASS /(abc)def(ghi)/.exec('abcdefghi').toString() is 'abcdefghi,abc,ghi'
PASS RegExp.$1 is 'abc'
PASS RegExp.$2 is 'ghi'
PASS RegExp.$3 is ''
PASS 'abcdefghi'.match(/(a(b(c(d(e)f)g)h)i)/).toString() is 'abcdefghi,abcdefghi,bcdefgh,cdefg,def,e'
PASS RegExp.$1 is 'abcdefghi'
PASS RegExp.$2 is 'bcdefgh'
PASS RegExp.$3 is 'cdefg'
PASS RegExp.$4 is 'def'
PASS RegExp.$5 is 'e'
PASS RegExp.$6 is ''
PASS '(100px 200px 150px 15px)'.match(/\((\d+)(px)* (\d+)(px)* (\d+)(px)* (\d+)(px)*\)/).toString() is '(100px 200px 150px 15px),100,px,200,px,150,px,15,px'
PASS RegExp.$1 is '100'
PASS RegExp.$3 is '200'
PASS RegExp.$5 is '150'
PASS RegExp.$7 is '15'
PASS ''.match(/((\d+)(px)* (\d+)(px)* (\d+)(px)* (\d+)(px)*)/) is null
FAIL RegExp.$1 should be . Was 100
FAIL RegExp.$3 should be . Was 200
FAIL RegExp.$5 should be . Was 150
FAIL RegExp.$7 should be . Was 15
PASS 'faure at kde.org'.match(invalidChars) == null is true
PASS 'faure-kde at kde.org'.match(invalidChars) == null is false
PASS 'test1test2'.replace('test','X') is 'X1test2'
PASS 'test1test2'.replace(/\d/,'X') is 'testXtest2'
PASS '1test2test3'.replace(/\d/,'') is 'test2test3'
PASS 'test1test2'.replace(/test/g,'X') is 'X1X2'
PASS '1test2test3'.replace(/\d/g,'') is 'testtest'
PASS '1test2test3'.replace(/x/g,'') is '1test2test3'
PASS 'test1test2'.replace(/(te)(st)/g,'$2$1') is 'stte1stte2'
PASS 'foo+bar'.replace(/\+/g,'%2B') is 'foo%2Bbar'
FAIL caught should be true. Was false
PASS 'foo'.replace(/z?/g,'x') is 'xfxoxox'
PASS 'test test'.replace(/\s*/g,'') is 'testtest'
PASS 'abc$%@'.replace(/[^0-9a-z]*/gi,'') is 'abc'
PASS 'ab'.replace(/[^\d\.]*/gi,'') is ''
PASS '1ab'.replace(/[^\d\.]*/gi,'') is '1'
PASS '1test2test3blah'.split(/test/).toString() is '1,2,3blah'
PASS reg.exec(str).toString() is '98 ,98 '
PASS reg.lastIndex is 3
PASS RegExp.$1 is '98 '
PASS RegExp.$2 is ''
PASS reg.exec(str).toString() is '76 ,76 '
PASS reg.lastIndex is 6
PASS RegExp.$1 is '76 '
PASS RegExp.$2 is ''
PASS reg.exec(str) is null
PASS reg.lastIndex is 0
PASS myRe=/d(b+)d/g; myArray = myRe.exec('cdbbdbsbz'); myRe.lastIndex is 5
PASS reg.ignoreCase == true is true
PASS reg.global === false is true
PASS reg.multiline === false is true
PASS reg.test('UGO') is true
PASS reg.x = 1; reg.x is 1
PASS var r2 = reg; r2.x = 2; reg.x is 2
PASS str.match(re).toString() is 'Chapter 3.4.5.1,Chapter 3.4.5.1,.1'
PASS str.match(/d/gi).toString() is 'D,d'
PASS /\u0061/.source is '\\u0061'
1.1 LayoutTests/fast/js/kde/RegExp.html
Index: RegExp.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/RegExp.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/StringObject-expected.txt
Index: StringObject-expected.txt
===================================================================
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 'abc'[0] is 'a'
PASS 'abc'[-1] is undefined.
PASS 'abc'[10] is undefined.
FAIL 'abc'[10] should be x. Was undefined
PASS bar is html
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/StringObject.html
Index: StringObject.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/StringObject.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/assignments-expected.txt
Index: assignments-expected.txt
===================================================================
PASS var i = 1; i is 1
PASS j = k = 2 is 2
PASS var i; i is undefined.
PASS var i = 1; i <<= 2 is 4
PASS var i = 8; i >>= 1 is 4
PASS var i = 1; i >>= 2 is 0
PASS var i = -8; i >>= 24 is -1
PASS var i = 8; i >>>= 2 is 2
PASS var i = -8; i >>>= 24 is 255
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/assignments.html
Index: assignments.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/assignments.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/cast-expected.txt
Index: cast-expected.txt
===================================================================
PASS Boolean(1) === true is true
PASS var s = String; s(1) === '1' is true
PASS n = Number; n(true) === 1 is true
PASS String(Array('a', 'b' )) is 'a,b'
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/cast.html
Index: cast.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/cast.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/comment-1-expected.txt
Index: comment-1-expected.txt
===================================================================
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/comment-1.html
Index: comment-1.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/comment-1.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/comment-2-expected.txt
Index: comment-2-expected.txt
===================================================================
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/comment-2.html
Index: comment-2.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/comment-2.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/completion-expected.txt
Index: completion-expected.txt
===================================================================
PASS foo(), i is 2
PASS caught is true
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/completion.html
Index: completion.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/completion.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/conditional-expected.txt
Index: conditional-expected.txt
===================================================================
PASS true ? 1 : 2 is 1
PASS false ? 1 : 2 is 2
PASS 'abc' ? 1 : 2 is 1
PASS null ? 1 : 2 is 2
PASS undefined ? 1 : 2 is 2
PASS /*var a=1;if (undefined) a = 2;*/ a is 1
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/conditional.html
Index: conditional.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/conditional.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/const-expected.txt
Index: const-expected.txt
===================================================================
PASS c is 11
PASS c is 11
PASS v is 1
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/const.html
Index: const.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/const.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/constructor_length-expected.txt
Index: constructor_length-expected.txt
===================================================================
PASS Object.length is 1
PASS Function.length is 1
PASS Array.length is 1
PASS String.length is 1
PASS Boolean.length is 1
PASS Number.length is 1
PASS Date.length is 7
PASS RegExp.length is 2
PASS Error.length is 1
PASS EvalError.length is 1
PASS RangeError.length is 1
PASS ReferenceError.length is 1
PASS SyntaxError.length is 1
PASS TypeError.length is 1
PASS URIError.length is 1
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/constructor_length.html
Index: constructor_length.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/constructor_length.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/crash-1-expected.txt
Index: crash-1-expected.txt
===================================================================
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/crash-1.html
Index: crash-1.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/crash-1.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/crash-2-expected.txt
Index: crash-2-expected.txt
===================================================================
OK. Caught an exception
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/crash-2.html
Index: crash-2.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/crash-2.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/delete-expected.txt
Index: delete-expected.txt
===================================================================
PASS a = 1; delete a; is true
PASS delete nonexistant; is true
PASS delete NaN is false
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/delete.html
Index: delete.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/delete.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/empty-expected.txt
Index: empty-expected.txt
===================================================================
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/empty.html
Index: empty.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/empty.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/encode_decode_uri-expected.txt
Index: encode_decode_uri-expected.txt
===================================================================
FAIL checkWithFunctions(encodeURI,decodeURI) should be true. Was false
FAIL checkWithFunctions(encodeURIComponent,decodeURIComponent) should be true. Was false
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/encode_decode_uri.html
Index: encode_decode_uri.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/encode_decode_uri.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/eval-expected.txt
Index: eval-expected.txt
===================================================================
PASS eval.length is 1
PASS eval('this') is this
PASS bx is 99
PASS cx is 99
PASS Skipping test for deprecated Object.prototype.eval()
PASS lotto() is 0
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/eval.html
Index: eval.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/eval.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/evil-n-expected.txt
Index: evil-n-expected.txt
===================================================================
FAIL (new Error()).message should be undefined. Was Unknown error
PASS ''.split(/.*/).length is 0
FAIL window.successfullyParsed should be undefined. Was true
1.1 LayoutTests/fast/js/kde/evil-n.html
Index: evil-n.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/evil-n.js"></script>
<script>
shouldBeUndefined("window.successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/exception_propagation-expected.txt
Index: exception_propagation-expected.txt
===================================================================
1.1 LayoutTests/fast/js/kde/exception_propagation.html
Index: exception_propagation.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/exception_propagation.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/exceptions-expected.txt
Index: exceptions-expected.txt
===================================================================
Except a lot of errors. They should all be caught and lead to PASS
testing throw() .......... PASS
testing throw() .......... PASS
ReferenceError .......... PASS
error propagation in functions .......... PASS
catch
finally
Math() error .......... PASS
Abort while() on error .......... PASS
undefined .......... FAIL
1.1 LayoutTests/fast/js/kde/exceptions.html
Index: exceptions.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/exceptions.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/function-expected.txt
Index: function-expected.txt
===================================================================
PASS empty1() is undefined
PASS empty2() is undefined
PASS obj.func(11) is 66
PASS c.x is 11
PASS f('bbbbb') is 'bbbbb'
PASS foo() is '|'
PASS foo('bar') is '|bar|'
PASS foo('bar', 'x') is '|bar|x|'
PASS foo2(7) is 0
PASS foo3(0, 99) is 2
PASS foo3(1, 99).length is 2
PASS nest0(2,3) is 36
PASS (new Function('return 11;'))() is 11
PASS (new Function('', 'return 22;'))() is 22
PASS (new Function('a', 'b', 'return a*b;'))(11, 3) is 33
PASS (new Function(' a ', ' b ', 'return a*b;'))(11, 4) is 44
PASS (new Function(' a,b ', ' c ', 'return a*b;'))(11, 5) is 55
PASS (new Function(' a,b ', ' c3 ', 'return a*b;'))(11, 6) is 66
PASS funcp3.length is 3
PASS (function(a, b, c, d) { }).length is 4
PASS (new Function('a', 'b', '')).length is 2
PASS f4(4) is 24
PASS f5(11) is 11
PASS f5.arguments is null
PASS arr[0] is 99
PASS arr[0] is 99
PASS typeof orgFuncClone is 'function'
PASS orgFuncClone('world') is 'Hello world'
PASS groupClone(1, 2) is 9
FAIL String(Math.sin) should be function sin() { [native code] } . Was (Internal Function)
PASS shadow() is 2
PASS nestedret is 'outer nest'
PASS not_nestedret is 'global nest'
PASS sample.prototype.prototype is undefined.
PASS sample.prototype.constructor == sample is true
PASS caught is true
PASS functionWithVarOverride(1) is 2
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/function.html
Index: function.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/function.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/function_arguments-expected.txt
Index: function_arguments-expected.txt
===================================================================
PASS mf.arguments is expected[expno++]
PASS mf.arguments[0] is expected[expno++]
PASS mf.arguments[0] is expected[expno++]
PASS mf.arguments[0] is expected[expno++]
PASS mf.arguments[0] is expected[expno++]
PASS mf.arguments[0] is expected[expno++]
PASS mf.arguments[0] is expected[expno++]
PASS mf.arguments[0] is expected[expno++]
PASS mf.arguments[0] is expected[expno++]
PASS mf.arguments is expected[expno++]
PASS ReadOnlyOK is true
PASS DontDeleteOK is true
PASS DontEnumOK is true
PASS arg0 is 1
PASS arg1 is 2
PASS arg2 is 3
PASS arglength is 3
PASS newarg0 is 1
PASS newarg1 is 2
PASS newarg2 is 999
PASS newx is 888
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/function_arguments.html
Index: function_arguments.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/function_arguments.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/function_constructor-expected.txt
Index: function_constructor-expected.txt
===================================================================
PASS myfunc.prototype.constructor.__proto__ == Function.prototype is true
PASS myfunc.prototype.constructor.__proto__.__proto__ == Object.prototype is true
PASS myfunc.prototype.constructor == myfunc is true
PASS Function.prototype.constructor == Function is true
PASS myfunc.prototype.toString == Object.prototype.toString is true
PASS myfunc.toString == Function.prototype.toString is true
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/function_constructor.html
Index: function_constructor.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/function_constructor.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/function_length-expected.txt
Index: function_length-expected.txt
===================================================================
PASS Array.prototype.toString.length is 0
PASS Array.prototype.toLocaleString.length is 0
FAIL Array.prototype.concat.length should be 0. Was 1
PASS Array.prototype.join.length is 1
PASS Array.prototype.pop.length is 0
PASS Array.prototype.push.length is 1
PASS Array.prototype.reverse.length is 0
PASS Array.prototype.shift.length is 0
PASS Array.prototype.slice.length is 2
PASS Array.prototype.sort.length is 1
PASS Array.prototype.splice.length is 2
PASS Array.prototype.unshift.length is 1
PASS Boolean.prototype.toString.length is 0
PASS Boolean.prototype.valueOf.length is 0
PASS Date.prototype.toString.length is 0
PASS Date.prototype.toUTCString.length is 0
PASS Date.prototype.toDateString.length is 0
PASS Date.prototype.toTimeString.length is 0
PASS Date.prototype.toLocaleString.length is 0
PASS Date.prototype.toLocaleDateString.length is 0
PASS Date.prototype.toLocaleTimeString.length is 0
PASS Date.prototype.valueOf.length is 0
PASS Date.prototype.getTime.length is 0
PASS Date.prototype.getFullYear.length is 0
PASS Date.prototype.getUTCFullYear.length is 0
PASS Date.prototype.toGMTString.length is 0
PASS Date.prototype.getMonth.length is 0
PASS Date.prototype.getUTCMonth.length is 0
PASS Date.prototype.getDate.length is 0
PASS Date.prototype.getUTCDate.length is 0
PASS Date.prototype.getDay.length is 0
PASS Date.prototype.getUTCDay.length is 0
PASS Date.prototype.getHours.length is 0
PASS Date.prototype.getUTCHours.length is 0
PASS Date.prototype.getMinutes.length is 0
PASS Date.prototype.getUTCMinutes.length is 0
PASS Date.prototype.getSeconds.length is 0
PASS Date.prototype.getUTCSeconds.length is 0
PASS Date.prototype.getMilliseconds.length is 0
PASS Date.prototype.getUTCMilliseconds.length is 0
PASS Date.prototype.getTimezoneOffset.length is 0
PASS Date.prototype.setTime.length is 1
PASS Date.prototype.setMilliseconds.length is 1
PASS Date.prototype.setUTCMilliseconds.length is 1
PASS Date.prototype.setSeconds.length is 2
PASS Date.prototype.setUTCSeconds.length is 2
PASS Date.prototype.setMinutes.length is 3
PASS Date.prototype.setUTCMinutes.length is 3
PASS Date.prototype.setHours.length is 4
PASS Date.prototype.setUTCHours.length is 4
PASS Date.prototype.setDate.length is 1
PASS Date.prototype.setUTCDate.length is 1
PASS Date.prototype.setMonth.length is 2
PASS Date.prototype.setUTCMonth.length is 2
PASS Date.prototype.setFullYear.length is 3
PASS Date.prototype.setUTCFullYear.length is 3
PASS Date.prototype.setYear.length is 1
PASS Date.prototype.getYear.length is 0
PASS Date.prototype.toGMTString.length is 0
PASS Error.prototype.toString.length is 0
PASS eval.length is 1
PASS parseInt.length is 2
PASS parseFloat.length is 1
PASS isNaN.length is 1
PASS isFinite.length is 1
PASS escape.length is 1
PASS unescape.length is 1
PASS Math.abs.length is 1
PASS Math.acos.length is 1
PASS Math.asin.length is 1
PASS Math.atan.length is 1
PASS Math.atan2.length is 2
PASS Math.ceil.length is 1
PASS Math.cos.length is 1
PASS Math.exp.length is 1
PASS Math.floor.length is 1
PASS Math.log.length is 1
PASS Math.max.length is 2
PASS Math.min.length is 2
PASS Math.pow.length is 2
PASS Math.random.length is 0
PASS Math.round.length is 1
PASS Math.sin.length is 1
PASS Math.sqrt.length is 1
PASS Math.tan.length is 1
PASS Object.prototype.toString.length is 0
PASS Object.prototype.valueOf.length is 0
PASS RegExp.prototype.exec.length is 0
PASS RegExp.prototype.test.length is 0
PASS RegExp.prototype.toString.length is 0
PASS String.fromCharCode.length is 1
PASS String.prototype.toString.length is 0
PASS String.prototype.valueOf.length is 0
PASS String.prototype.charAt.length is 1
PASS String.prototype.charCodeAt.length is 1
PASS String.prototype.indexOf.length is 1
PASS String.prototype.lastIndexOf.length is 1
PASS String.prototype.match.length is 1
PASS String.prototype.replace.length is 2
PASS String.prototype.search.length is 1
PASS String.prototype.slice.length is 2
PASS String.prototype.split.length is 2
PASS String.prototype.substr.length is 2
PASS String.prototype.substring.length is 2
PASS String.prototype.toLowerCase.length is 0
PASS String.prototype.toUpperCase.length is 0
PASS String.prototype.big.length is 0
PASS String.prototype.small.length is 0
PASS String.prototype.blink.length is 0
PASS String.prototype.bold.length is 0
PASS String.prototype.fixed.length is 0
PASS String.prototype.italics.length is 0
PASS String.prototype.strike.length is 0
PASS String.prototype.sub.length is 0
PASS String.prototype.sup.length is 0
PASS String.prototype.fontcolor.length is 1
PASS String.prototype.fontsize.length is 1
PASS String.prototype.anchor.length is 1
PASS String.prototype.link.length is 1
PASS Number.prototype.toString.length is 1
PASS Number.prototype.valueOf.length is 0
PASS Number.prototype.toFixed.length is 1
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/function_length.html
Index: function_length.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/function_length.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/garbage-n-expected.txt
Index: garbage-n-expected.txt
===================================================================
PASS window.successfullyParsed is undefined.
1.1 LayoutTests/fast/js/kde/garbage-n.html
Index: garbage-n.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/garbage-n.js"></script>
<script>
shouldBeUndefined("window.successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/inbuilt_function_proto-expected.txt
Index: inbuilt_function_proto-expected.txt
===================================================================
PASS Object.prototype.toString.__proto__ is Function.prototype
PASS Object.prototype.valueOf.__proto__ is Function.prototype
PASS Array.prototype.toString.__proto__ is Function.prototype
PASS Array.prototype.toLocaleString.__proto__ is Function.prototype
PASS Array.prototype.concat.__proto__ is Function.prototype
PASS Array.prototype.join.__proto__ is Function.prototype
PASS Array.prototype.pop.__proto__ is Function.prototype
PASS Array.prototype.push.__proto__ is Function.prototype
PASS Array.prototype.reverse.__proto__ is Function.prototype
PASS Array.prototype.shift.__proto__ is Function.prototype
PASS Array.prototype.slice.__proto__ is Function.prototype
PASS Array.prototype.sort.__proto__ is Function.prototype
PASS Array.prototype.splice.__proto__ is Function.prototype
PASS Array.prototype.unshift.__proto__ is Function.prototype
PASS String.prototype.toString.__proto__ is Function.prototype
PASS String.prototype.valueOf.__proto__ is Function.prototype
PASS String.prototype.charAt.__proto__ is Function.prototype
PASS String.prototype.charCodeAt.__proto__ is Function.prototype
PASS String.prototype.indexOf.__proto__ is Function.prototype
PASS String.prototype.lastIndexOf.__proto__ is Function.prototype
PASS String.prototype.match.__proto__ is Function.prototype
PASS String.prototype.replace.__proto__ is Function.prototype
PASS String.prototype.search.__proto__ is Function.prototype
PASS String.prototype.slice.__proto__ is Function.prototype
PASS String.prototype.split.__proto__ is Function.prototype
PASS String.prototype.substr.__proto__ is Function.prototype
PASS String.prototype.substring.__proto__ is Function.prototype
PASS String.prototype.toLowerCase.__proto__ is Function.prototype
PASS String.prototype.toUpperCase.__proto__ is Function.prototype
PASS String.prototype.big.__proto__ is Function.prototype
PASS String.prototype.small.__proto__ is Function.prototype
PASS String.prototype.blink.__proto__ is Function.prototype
PASS String.prototype.bold.__proto__ is Function.prototype
PASS String.prototype.fixed.__proto__ is Function.prototype
PASS String.prototype.italics.__proto__ is Function.prototype
PASS String.prototype.strike.__proto__ is Function.prototype
PASS String.prototype.sub.__proto__ is Function.prototype
PASS String.prototype.sup.__proto__ is Function.prototype
PASS String.prototype.fontcolor.__proto__ is Function.prototype
PASS String.prototype.fontsize.__proto__ is Function.prototype
PASS String.prototype.anchor.__proto__ is Function.prototype
PASS String.prototype.link.__proto__ is Function.prototype
PASS Boolean.prototype.toString.__proto__ is Function.prototype
PASS Boolean.prototype.valueOf.__proto__ is Function.prototype
PASS Date.prototype.toString.__proto__ is Function.prototype
PASS Date.prototype.toUTCString.__proto__ is Function.prototype
PASS Date.prototype.toDateString.__proto__ is Function.prototype
PASS Date.prototype.toTimeString.__proto__ is Function.prototype
PASS Date.prototype.toLocaleString.__proto__ is Function.prototype
PASS Date.prototype.toLocaleDateString.__proto__ is Function.prototype
PASS Date.prototype.toLocaleTimeString.__proto__ is Function.prototype
PASS Date.prototype.valueOf.__proto__ is Function.prototype
PASS Date.prototype.getTime.__proto__ is Function.prototype
PASS Date.prototype.getFullYear.__proto__ is Function.prototype
PASS Date.prototype.getUTCFullYear.__proto__ is Function.prototype
PASS Date.prototype.toGMTString.__proto__ is Function.prototype
PASS Date.prototype.getMonth.__proto__ is Function.prototype
PASS Date.prototype.getUTCMonth.__proto__ is Function.prototype
PASS Date.prototype.getDate.__proto__ is Function.prototype
PASS Date.prototype.getUTCDate.__proto__ is Function.prototype
PASS Date.prototype.getDay.__proto__ is Function.prototype
PASS Date.prototype.getUTCDay.__proto__ is Function.prototype
PASS Date.prototype.getHours.__proto__ is Function.prototype
PASS Date.prototype.getUTCHours.__proto__ is Function.prototype
PASS Date.prototype.getMinutes.__proto__ is Function.prototype
PASS Date.prototype.getUTCMinutes.__proto__ is Function.prototype
PASS Date.prototype.getSeconds.__proto__ is Function.prototype
PASS Date.prototype.getUTCSeconds.__proto__ is Function.prototype
PASS Date.prototype.getMilliseconds.__proto__ is Function.prototype
PASS Date.prototype.getUTCMilliseconds.__proto__ is Function.prototype
PASS Date.prototype.getTimezoneOffset.__proto__ is Function.prototype
PASS Date.prototype.setTime.__proto__ is Function.prototype
PASS Date.prototype.setMilliseconds.__proto__ is Function.prototype
PASS Date.prototype.setUTCMilliseconds.__proto__ is Function.prototype
PASS Date.prototype.setSeconds.__proto__ is Function.prototype
PASS Date.prototype.setUTCSeconds.__proto__ is Function.prototype
PASS Date.prototype.setMinutes.__proto__ is Function.prototype
PASS Date.prototype.setUTCMinutes.__proto__ is Function.prototype
PASS Date.prototype.setHours.__proto__ is Function.prototype
PASS Date.prototype.setUTCHours.__proto__ is Function.prototype
PASS Date.prototype.setDate.__proto__ is Function.prototype
PASS Date.prototype.setUTCDate.__proto__ is Function.prototype
PASS Date.prototype.setMonth.__proto__ is Function.prototype
PASS Date.prototype.setUTCMonth.__proto__ is Function.prototype
PASS Date.prototype.setFullYear.__proto__ is Function.prototype
PASS Date.prototype.setUTCFullYear.__proto__ is Function.prototype
PASS Date.prototype.setYear.__proto__ is Function.prototype
PASS Date.prototype.getYear.__proto__ is Function.prototype
PASS Date.prototype.toGMTString.__proto__ is Function.prototype
PASS RegExp.prototype.exec.__proto__ is Function.prototype
PASS RegExp.prototype.test.__proto__ is Function.prototype
PASS RegExp.prototype.toString.__proto__ is Function.prototype
PASS Error.prototype.toString.__proto__ is Function.prototype
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/inbuilt_function_proto.html
Index: inbuilt_function_proto.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/inbuilt_function_proto.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/inbuilt_function_tostring-expected.txt
Index: inbuilt_function_tostring-expected.txt
===================================================================
FAIL StripSpaces(eval.toString()) should be functioneval(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(parseInt.toString()) should be functionparseInt(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(parseFloat.toString()) should be functionparseFloat(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(isNaN.toString()) should be functionisNaN(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(isFinite.toString()) should be functionisFinite(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(escape.toString()) should be functionescape(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(unescape.toString()) should be functionunescape(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(kjsprint.toString()) should be functionkjsprint(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Object.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Object.prototype.toLocaleString.toString()) should be functiontoLocaleString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Object.prototype.valueOf.toString()) should be functionvalueOf(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Object.prototype.hasOwnProperty.toString()) should be functionhasOwnProperty(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Object.prototype.isPrototypeOf.toString()) should be functionisPrototypeOf(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Object.prototype.propertyIsEnumerable.toString()) should be functionpropertyIsEnumerable(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Function.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Function.prototype.apply.toString()) should be functionapply(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Function.prototype.call.toString()) should be functioncall(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.toLocaleString.toString()) should be functiontoLocaleString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.concat.toString()) should be functionconcat(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.join.toString()) should be functionjoin(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.pop.toString()) should be functionpop(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.push.toString()) should be functionpush(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.reverse.toString()) should be functionreverse(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.shift.toString()) should be functionshift(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.slice.toString()) should be functionslice(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.sort.toString()) should be functionsort(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.splice.toString()) should be functionsplice(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Array.prototype.unshift.toString()) should be functionunshift(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.valueOf.toString()) should be functionvalueOf(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.charAt.toString()) should be functioncharAt(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.charCodeAt.toString()) should be functioncharCodeAt(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.concat.toString()) should be functionconcat(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.indexOf.toString()) should be functionindexOf(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.lastIndexOf.toString()) should be functionlastIndexOf(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.match.toString()) should be functionmatch(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.replace.toString()) should be functionreplace(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.search.toString()) should be functionsearch(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.slice.toString()) should be functionslice(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.split.toString()) should be functionsplit(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.substr.toString()) should be functionsubstr(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.substring.toString()) should be functionsubstring(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.toLowerCase.toString()) should be functiontoLowerCase(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.toUpperCase.toString()) should be functiontoUpperCase(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.big.toString()) should be functionbig(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.small.toString()) should be functionsmall(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.blink.toString()) should be functionblink(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.bold.toString()) should be functionbold(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.fixed.toString()) should be functionfixed(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.italics.toString()) should be functionitalics(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.strike.toString()) should be functionstrike(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.sub.toString()) should be functionsub(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.sup.toString()) should be functionsup(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.fontcolor.toString()) should be functionfontcolor(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.fontsize.toString()) should be functionfontsize(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.anchor.toString()) should be functionanchor(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(String.prototype.link.toString()) should be functionlink(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Boolean.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Boolean.prototype.valueOf.toString()) should be functionvalueOf(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Number.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Number.prototype.toLocaleString.toString()) should be functiontoLocaleString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Number.prototype.valueOf.toString()) should be functionvalueOf(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Number.prototype.toFixed.toString()) should be functiontoFixed(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Number.prototype.toExponential.toString()) should be functiontoExponential(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Number.prototype.toPrecision.toString()) should be functiontoPrecision(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.abs.toString()) should be functionabs(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.acos.toString()) should be functionacos(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.asin.toString()) should be functionasin(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.atan.toString()) should be functionatan(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.atan2.toString()) should be functionatan2(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.ceil.toString()) should be functionceil(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.cos.toString()) should be functioncos(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.exp.toString()) should be functionexp(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.floor.toString()) should be functionfloor(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.log.toString()) should be functionlog(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.max.toString()) should be functionmax(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.min.toString()) should be functionmin(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.pow.toString()) should be functionpow(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.random.toString()) should be functionrandom(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.round.toString()) should be functionround(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.sin.toString()) should be functionsin(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.sqrt.toString()) should be functionsqrt(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Math.tan.toString()) should be functiontan(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toUTCString.toString()) should be functiontoUTCString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toDateString.toString()) should be functiontoDateString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toTimeString.toString()) should be functiontoTimeString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toLocaleString.toString()) should be functiontoLocaleString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toLocaleDateString.toString()) should be functiontoLocaleDateString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toLocaleTimeString.toString()) should be functiontoLocaleTimeString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.valueOf.toString()) should be functionvalueOf(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getTime.toString()) should be functiongetTime(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getFullYear.toString()) should be functiongetFullYear(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getUTCFullYear.toString()) should be functiongetUTCFullYear(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toGMTString.toString()) should be functiontoGMTString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getMonth.toString()) should be functiongetMonth(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getUTCMonth.toString()) should be functiongetUTCMonth(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getDate.toString()) should be functiongetDate(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getUTCDate.toString()) should be functiongetUTCDate(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getDay.toString()) should be functiongetDay(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getUTCDay.toString()) should be functiongetUTCDay(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getHours.toString()) should be functiongetHours(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getUTCHours.toString()) should be functiongetUTCHours(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getMinutes.toString()) should be functiongetMinutes(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getUTCMinutes.toString()) should be functiongetUTCMinutes(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getSeconds.toString()) should be functiongetSeconds(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getUTCSeconds.toString()) should be functiongetUTCSeconds(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getMilliseconds.toString()) should be functiongetMilliseconds(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getUTCMilliseconds.toString()) should be functiongetUTCMilliseconds(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getTimezoneOffset.toString()) should be functiongetTimezoneOffset(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setTime.toString()) should be functionsetTime(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setMilliseconds.toString()) should be functionsetMilliseconds(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setUTCMilliseconds.toString()) should be functionsetUTCMilliseconds(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setSeconds.toString()) should be functionsetSeconds(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setUTCSeconds.toString()) should be functionsetUTCSeconds(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setMinutes.toString()) should be functionsetMinutes(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setUTCMinutes.toString()) should be functionsetUTCMinutes(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setHours.toString()) should be functionsetHours(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setUTCHours.toString()) should be functionsetUTCHours(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setDate.toString()) should be functionsetDate(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setUTCDate.toString()) should be functionsetUTCDate(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setMonth.toString()) should be functionsetMonth(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setUTCMonth.toString()) should be functionsetUTCMonth(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setFullYear.toString()) should be functionsetFullYear(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setUTCFullYear.toString()) should be functionsetUTCFullYear(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.setYear.toString()) should be functionsetYear(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.getYear.toString()) should be functiongetYear(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Date.prototype.toGMTString.toString()) should be functiontoGMTString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(RegExp.prototype.exec.toString()) should be functionexec(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(RegExp.prototype.test.toString()) should be functiontest(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(RegExp.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
FAIL StripSpaces(Error.prototype.toString.toString()) should be functiontoString(){[nativecode]}. Was (InternalFunction)
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/inbuilt_function_tostring.html
Index: inbuilt_function_tostring.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/inbuilt_function_tostring.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/iteration-expected.txt
Index: iteration-expected.txt
===================================================================
PASS count is 10
PASS count is 5
PASS count is 10
PASS properties is 'a=11;b=22;'
PASS list is '[0]=100;[1]=101;'
PASS list is '123'
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/iteration.html
Index: iteration.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/iteration.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/j-comment-3-expected.txt
Index: j-comment-3-expected.txt
===================================================================
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/j-comment-3.html
Index: j-comment-3.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/j-comment-3.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/j-comment-4-expected.txt
Index: j-comment-4-expected.txt
===================================================================
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/j-comment-4.html
Index: j-comment-4.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/j-comment-4.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/literals-expected.txt
Index: literals-expected.txt
===================================================================
PASS x is 1
PASS 0x0 is 0
PASS 0xF is 15
PASS 0xFF is 255
PASS 01 is 1
PASS 010 is 8
PASS 09 is 9
PASS 019 is 19
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/literals.html
Index: literals.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/literals.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/math-expected.txt
Index: math-expected.txt
===================================================================
PASS isNegativeZero(negativeZero) is true
PASS isNegativeZero(0) is false
PASS String()+Math.E is '2.718281828459045'
PASS String()+Math.LN2 is '0.6931471805599453'
PASS String()+Math.LN10 is '2.302585092994046'
PASS String()+Math.LOG2E is '1.4426950408889634'
PASS String()+Math.LOG10E is '0.43429448190325176'
PASS String()+Math.PI is '3.141592653589793'
PASS String()+Math.SQRT1_2 is '0.7071067811865476'
PASS String()+Math.SQRT2 is '1.4142135623730951'
PASS String()+Number.NaN is 'NaN'
PASS String()+Number.NEGATIVE_INFINITY is '-Infinity'
PASS String()+Number.POSITIVE_INFINITY is 'Infinity'
PASS Math.abs(-5) is 5
PASS Math.acos(0) is Math.PI/2
PASS Math.acos(1) is 0
PASS Math.ceil(1.1) is 2
PASS String()+Math.sqrt(2) is String()+Math.SQRT2
PASS Math.ceil(1.6) is 2
PASS Math.round(0) is 0
PASS isNegativeZero(Math.round(0)) is false
PASS isNegativeZero(Math.round(negativeZero)) is true
PASS Math.round(0.2) is 0
PASS isNegativeZero(Math.round(-0.2)) is true
PASS isNegativeZero(Math.round(-0.5)) is true
PASS Math.round(1.1) is 1
PASS Math.round(1.6) is 2
PASS Math.round(-3.5) is -3
PASS Math.round(-3.6) is -4
PASS isNaN(Math.round()) is true
PASS isNaN(Math.round(NaN)) is true
PASS Math.round(-Infinity) is -Infinity
PASS Math.round(Infinity) is Infinity
PASS Math.round(99999999999999999999.99) is 100000000000000000000
PASS Math.round(-99999999999999999999.99) is -100000000000000000000
PASS Math.log(Math.E*Math.E) is 2
PASS isNaN(Math.log(NaN)) is true
PASS isNaN(Math.log(-1)) is true
PASS isFinite(Math.log(0)) is false
PASS Math.log(1) is 0
PASS isFinite(Math.log(Infinity)) is false
PASS isNegativeZero(Math.min(negativeZero, 0)) is true
PASS isFinite(Math.max()) is false
PASS Math.max(1) is 1
PASS Math.max(1, 2, 3) is 3
PASS isNaN(Math.max(1,NaN,3)) is true
PASS !isNegativeZero(Math.max(negativeZero, 0)) is true
PASS list is ''
PASS delete my.v is true
PASS my.v is undefined.
PASS delete Math.PI is false
PASS my = myfunc, myfunc(4) is 5
PASS Boolean(Math) is true
PASS isNaN(Number(Math)); is true
PASS Math.abs===Math.abs is true
PASS Math.abs===Math.round is false
PASS list is 'a,b,'
PASS list is ''
PASS list is 'myprop,'
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/math.html
Index: math.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/math.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/md5-1-expected.txt
Index: md5-1-expected.txt
===================================================================
PASS MD5('kde') is '186cf28b76f2264e9fea8fcf91cb4f5d'
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/md5-1.html
Index: md5-1.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/md5-1.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/md5-2-expected.txt
Index: md5-2-expected.txt
===================================================================
PASS hexMD5('kde') is '186cf28b76f2264e9fea8fcf91cb4f5d'
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/md5-2.html
Index: md5-2.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/md5-2.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/object_prototype-expected.txt
Index: object_prototype-expected.txt
===================================================================
PASS sub.x is 1
PASS sub.y is 2
PASS sub.hasOwnProperty('x') is false
PASS sub.hasOwnProperty('y') is true
PASS sub.x is 6
PASS sub.hasOwnProperty('x') is true
PASS sub.y is undefined
PASS sub.hasOwnProperty('y') is false
PASS obj.hasClass1 is true
PASS obj.hasClass2 is true
PASS obj.hasClass3 is true
PASS Class1.prototype.isPrototypeOf(obj) is true
PASS Class2.prototype.isPrototypeOf(obj) is true
PASS Class3.prototype.isPrototypeOf(obj) is true
PASS obj.isPrototypeOf(Class1.prototype) is false
PASS obj.isPrototypeOf(Class2.prototype) is false
PASS obj.isPrototypeOf(Class3.prototype) is false
PASS Class1.prototype.isPrototypeOf(Class2.prototype) is true
PASS Class2.prototype.isPrototypeOf(Class1.prototype) is false
PASS Class1.prototype.isPrototypeOf(Class3.prototype) is true
PASS Class3.prototype.isPrototypeOf(Class1.prototype) is false
PASS Class2.prototype.isPrototypeOf(Class3.prototype) is true
PASS Class3.prototype.isPrototypeOf(Class2.prototype) is false
PASS Class1.prototype.prototype is undefined.
PASS myfunc.length is 3
PASS myfunc.someproperty is 4
PASS myfunc.propertyIsEnumerable('length') is false
PASS myfunc.propertyIsEnumerable('someproperty') is true
PASS checkEnumerable(myfunc,'length') is false
PASS checkEnumerable(myfunc,'someproperty') is true
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/object_prototype.html
Index: object_prototype.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/object_prototype.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/object_prototype_tostring-expected.txt
Index: object_prototype_tostring-expected.txt
===================================================================
PASS _array.toString() is "[object Array]"
PASS _string.toString() is "[object String]"
PASS _boolean.toString() is "[object Boolean]"
PASS _number.toString() is "[object Number]"
PASS _object.toString() is "[object Object]"
PASS _date.toString() is "[object Date]"
PASS _regexp.toString() is "[object RegExp]"
PASS _error.toString() is "[object Error]"
PASS _function.toString() is "[object Function]"
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/object_prototype_tostring.html
Index: object_prototype_tostring.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/object_prototype_tostring.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/operators-expected.txt
Index: operators-expected.txt
===================================================================
PASS !undefined is true
PASS !null is true
PASS !!true is true
PASS !false is true
PASS !!1 is true
PASS !0 is true
PASS !!'a' is true
PASS !'' is true
PASS var i = 0; ++i; is 1
PASS var i = 0; ++i; i is 1
PASS var i = 0; i++; is 0
PASS var i = 0; i++; i is 1
PASS var i = true; i++ is 1
PASS var i = true; i++; i is 2
PASS var i = 0; --i; is -1
PASS var i = 0; --i; i is -1
PASS var i = 0; i--; is 0
PASS var i = 0; i--; i is -1
PASS var i = true; i-- is 1
PASS var i = true; i--; i is 0
PASS ~0 is -1
PASS ~1 is -2
PASS ~Math.pow(2, 33) is -1
PASS ~(Math.pow(2, 32) + Math.pow(2, 31) + 2) is 2147483645
PASS ~null is -1
PASS 3 & 1 is 1
PASS 2 | true is 3
PASS '3' ^ 1 is 2
PASS 3^4&5 is 7
PASS 2|4^5 is 3
PASS 1 << 2 is 4
PASS 8 >> 1 is 4
PASS 1 >> 2 is 0
PASS -8 >> 24 is -1
PASS 8 >>> 2 is 2
PASS -8 >>> 24 is 255
PASS (-2200000000 >> 1) << 1 is 2094967296
PASS 1+2 is 3
PASS 'a'+'b' is 'ab'
PASS 'a'+2 is 'a2'
PASS '2'+'-1' is '2-1'
PASS true+'a' is 'truea'
PASS 'a' + null is 'anull'
PASS true+1 is 2
PASS false+null is 0
PASS 1-3 is -2
PASS isNaN('a'-3) is true
PASS '3'-'-1' is 4
PASS '4'-2 is 2
PASS true-false is 1
PASS false-1 is -1
PASS null-true is -1
PASS 2 * 3 is 6
PASS true * 3 is 3
PASS 2 * '3' is 6
PASS 6 / 4 is 1.5
PASS '6' / '2' is 3
PASS isNaN('x' / 1) is true
PASS isNaN(1 / NaN) is true
PASS isNaN(Infinity / Infinity) is true
PASS Infinity / 0 is Infinity
PASS -Infinity / 0 is -Infinity
PASS Infinity / 1 is Infinity
PASS -Infinity / 1 is -Infinity
PASS 1 / Infinity == +0 is true
PASS 1 / -Infinity == -0 is true
PASS isNaN(0/0) is true
PASS 0 / 1 === 0 is true
PASS 0 / -1 === -0 is true
PASS 1 / 0 is Infinity
PASS -1 / 0 is -Infinity
PASS 6 % 4 is 2
PASS '-6' % 4 is -2
PASS 2==2 is true
PASS 1==2 is false
PASS 1<2 is true
PASS 1<=2 is true
PASS 2<1 is false
PASS 2<=1 is false
PASS 2>1 is true
PASS 2>=1 is true
PASS 1>=2 is false
PASS 1>2 is false
PASS 'abc' == 'abc' is true
PASS 'abc' != 'xyz' is true
PASS true == true is true
PASS false == false is true
PASS true != false is true
PASS 'a' != null is true
PASS 'a' != undefined is true
PASS null == null is true
PASS null == undefined is true
PASS undefined == undefined is true
PASS NaN != NaN is true
PASS true != undefined is true
PASS true != null is true
PASS false != undefined is true
PASS false != null is true
PASS '0' == 0 is true
PASS 1 == '1' is true
PASS NaN != NaN is true
PASS NaN != 0 is true
PASS NaN != undefined is true
PASS true == 1 is true
PASS true != 2 is true
PASS 1 == true is true
PASS false == 0 is true
PASS 0 == false is true
PASS 'abc' < 'abx' is true
PASS 'abc' < 'abcd' is true
PASS 'abc' < 'abc' is false
PASS 'abcd' < 'abcd' is false
PASS 'abx' < 'abc' is false
PASS 'abc' <= 'abc' is true
PASS 'abc' <= 'abx' is true
PASS 'abx' <= 'abc' is false
PASS 'abcd' <= 'abc' is false
PASS 'abc' <= 'abcd' is true
PASS 'abc' > 'abx' is false
PASS 'abc' > 'abc' is false
PASS 'abcd' > 'abc' is true
PASS 'abx' > 'abc' is true
PASS 'abc' > 'abcd' is false
PASS 'abc' >= 'abc' is true
PASS 'abcd' >= 'abc' is true
PASS 'abx' >= 'abc' is true
PASS 'abc' >= 'abx' is false
PASS 'abc' >= 'abx' is false
PASS 'abc' >= 'abcd' is false
PASS 'abc' <= 0 is false
PASS '' <= 0 is true
PASS ' ' <= 0 is true
PASS null <= 0 is true
PASS 0 <= 'abc' is false
PASS 0 <= '' is true
PASS 0 <= null is true
PASS null <= null is true
PASS 6 < '52' is true
PASS 6 < '72' is true
PASS NaN < 0 is false
PASS NaN <= 0 is false
PASS NaN > 0 is false
PASS NaN >= 0 is false
PASS 0 === false is false
PASS null === null is true
PASS NaN === NaN is false
PASS 0.0 === 0 is true
PASS 'abc' === 'abc' is true
PASS 'a' === 'x' is false
PASS true === true is true
PASS false === false is true
PASS true === false is false
PASS Math === Math is true
PASS Math === Boolean is false
PASS Infinity === Infinity is true
PASS 0 !== 0 is false
PASS 0 !== 1 is true
PASS typeof undefined is 'undefined'
PASS typeof null is 'object'
PASS typeof true is 'boolean'
PASS typeof false is 'boolean'
PASS typeof 1 is 'number'
PASS typeof 'a' is 'string'
PASS typeof shouldBe is 'function'
PASS typeof Number.NaN is 'number'
PASS 11 && 22 is 22
PASS null && true is null
PASS 11 || 22 is 11
PASS null || 'a' is 'a'
PASS void 1 is undefined.
PASS 1 in [1, 2] is true
PASS 3 in [1, 2] is false
PASS 'a' in { a:1, b:2 } is true
PASS (new Boolean()) instanceof Boolean is true
PASS (new Boolean()) instanceof Number is false
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/operators.html
Index: operators.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/operators.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/parse-expected.txt
Index: parse-expected.txt
===================================================================
1.1 LayoutTests/fast/js/kde/parse.html
Index: parse.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/parse.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/prototype_length-expected.txt
Index: prototype_length-expected.txt
===================================================================
PASS Object.prototype.length is undefined
PASS Function.prototype.length is 0
PASS Array.prototype.length is 0
PASS String.prototype.length is 0
PASS Boolean.prototype.length is undefined
PASS Number.prototype.length is undefined
PASS Date.prototype.length is undefined
PASS RegExp.prototype.length is undefined
PASS Error.prototype.length is undefined
PASS Array.prototype.length is 6
PASS Function.prototype.length is 0
PASS String.prototype.length is 0
PASS delete Array.prototype.length is false
PASS delete Function.prototype.length is false
PASS delete String.prototype.length is false
PASS foundArrayPrototypeLength is false
PASS foundFunctionPrototypeLength is false
PASS foundStringPrototypeLength is false
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/prototype_length.html
Index: prototype_length.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/prototype_length.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/prototype_proto-expected.txt
Index: prototype_proto-expected.txt
===================================================================
PASS Object.prototype.__proto__ == Object.prototype is false
PASS Function.prototype.__proto__ is Object.prototype
PASS Array.prototype.__proto__ is Object.prototype
PASS String.prototype.__proto__ is Object.prototype
PASS Boolean.prototype.__proto__ is Object.prototype
PASS Number.prototype.__proto__ is Object.prototype
PASS Date.prototype.__proto__ is Object.prototype
PASS RegExp.prototype.__proto__ is Object.prototype
PASS Error.prototype.__proto__ is Object.prototype
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/prototype_proto.html
Index: prototype_proto.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/prototype_proto.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/scope-expected.txt
Index: scope-expected.txt
===================================================================
PASS f(2) is 22
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/scope.html
Index: scope.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/scope.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/statements-expected.txt
Index: statements-expected.txt
===================================================================
PASS testSwitch(0) is 'abcd'
PASS testSwitch(1) is 'bcd'
PASS testSwitch(2) is 'd'
PASS testSwitch(false) is ''
PASS testSwitch2(1) is 'a'
PASS testSwitch2(2) is 'b'
PASS testSwitch2(3) is 'd'
PASS testSwitch2(-1) is 'cd'
PASS testSwitch2('x') is 'cd'
PASS testSwitch3(0) is 'cde'
PASS testSwitch3(3) is 'de'
PASS testSwitch3(4) is 'e'
PASS testSwitch4(0) is 'ab'
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/statements.html
Index: statements.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/statements.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/string-1-n-expected.txt
Index: string-1-n-expected.txt
===================================================================
PASS window.successfullyParsed is undefined.
1.1 LayoutTests/fast/js/kde/string-1-n.html
Index: string-1-n.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/string-1-n.js"></script>
<script>
shouldBeUndefined("window.successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/string-2-n-expected.txt
Index: string-2-n-expected.txt
===================================================================
PASS window.successfullyParsed is undefined.
1.1 LayoutTests/fast/js/kde/string-2-n.html
Index: string-2-n.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/string-2-n.js"></script>
<script>
shouldBeUndefined("window.successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/var_decl_init-expected.txt
Index: var_decl_init-expected.txt
===================================================================
PASS varInFunction() is true
PASS varInVarList() is true
PASS varListOrder() is true
PASS varInBlock() is true
PASS varInIf() is true
PASS varInElse() is true
PASS varInDoWhile() is true
PASS varInWhile() is true
PASS varInFor() is true
PASS varInForIn() is true
PASS varInWith() is true
PASS varInCase() is true
PASS varInLabel() is true
PASS varInCatch() is true
PASS varInFinally() is true
PASS varInTry() is true
PASS varInForInitExpr() is true
PASS varInSubFunction() is true
PASS varGlobal is 1
PASS overrideVar is 1
PASS overrideVar2 is 2
PASS successfullyParsed is true
1.1 LayoutTests/fast/js/kde/var_decl_init.html
Index: var_decl_init.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<!-- This file allows to run a javascript test in another browser.
Simply change the script inclusion at the end of the file -->
<script src="resources/base.js"></script>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
function testPassed(msg)
{
document.write("<b><font color=green>PASS</font></b> " + msg + "<br>");
}
function testFailed(msg)
{
document.write("<b><font color=red>FAIL</font></b> " + msg + "<br>");
}
function debug(a)
{
document.write("<p> " + a + "</p>");
}
</script>
<script src="resources/var_decl_init.js"></script>
<script>
shouldBeTrue("successfullyParsed");
</script>
</html>
1.1 LayoutTests/fast/js/kde/resources/Array.js
Index: Array.js
===================================================================
// 15.4 Array Objects
// (c) 2001 Harri Porten <porten at kde.org>
shouldBe("Array().length", "0");
shouldBe("(new Array()).length", "0");
shouldBe("(new Array(3)).length", "3");
shouldBe("(new Array(11, 22)).length", "2");
shouldBe("(new Array(11, 22))[0]", "11");
shouldBe("Array(11, 22)[1]", "22");
shouldBeUndefined("(new Array(11, 22))[3]");
shouldBe("String(new Array(11, 22))", "'11,22'");
shouldBe("var a = []; a[0] = 33; a[0]", "33");
shouldBe("var a = []; a[0] = 33; a.length", "1");
shouldBe("var a = [11, 22]; a.length = 1; String(a);", "'11'");
shouldBe("var a = [11, 22]; a.length = 1; a.length;", "1");
// range checks
var caught = false;
var ename = "";
try {
[].length = -1;
} catch (e) {
// expect Range Error
caught = true;
ename = e.name;
}
shouldBeTrue("caught;");
shouldBe("ename", "'RangeError'");
caught = false;
ename = "";
try {
new Array(Infinity);
} catch (e) {
// expect Range Error
caught = true;
ename = e.name;
}
shouldBeTrue("caught;");
shouldBe("ename", "'RangeError'");
shouldBeUndefined("var a = [11, 22]; a.length = 1; a[1];");
shouldBe("Array().toString()", "''");
shouldBe("Array(3).toString()", "',,'");
shouldBe("Array(11, 22).toString()", "'11,22'");
shouldBe("String(Array(11, 22).concat(33))", "'11,22,33'");
shouldBe("String(Array(2).concat(33, 44))", "',,33,44'");
shouldBe("String(Array(2).concat(Array(2)))", "',,,'");
shouldBe("String(Array(11,22).concat(Array(33,44)))", "'11,22,33,44'");
shouldBe("String(Array(1,2).concat(3,Array(4,5)))", "'1,2,3,4,5'");
shouldBe("var a = new Array(1,2,3); delete a[1]; String(a.concat(4))", "'1,,3,4'");
shouldBe("[1,2,3,4].slice(1, 3).toString()", "'2,3'");
shouldBe("[1,2,3,4].slice(-3, -1).toString()", "'2,3'");
shouldBe("[1,2].slice(-9, 0).length", "0");
shouldBe("[1,2].slice(1).toString()", "'2'");
shouldBe("[1,2].slice().toString()", "'1,2'");
// 2nd set.
shouldBe("(new Array('a')).length", "1");
shouldBe("(new Array('a'))[0]", "'a'");
shouldBeUndefined("(new Array('a'))[1]");
shouldBe("Array('a').length", "1");
shouldBe("Array('a')[0]", "'a'");
shouldBe("String(Array())", "''");
shouldBe("String(Array('a','b'))", "'a,b'");
shouldBe("[].length", "0");
shouldBe("['a'].length", "1");
shouldBe("['a'][0]", "'a'");
shouldBe("['a',,'c'][2]", "'c'");
function forInSum(_a) {
var s = '';
for (i in _a)
s += _a[i];
return s;
}
shouldBe("forInSum([])", "''");
shouldBe("forInSum(Array())", "''");
shouldBe("forInSum(Array('a'))", "'a'");
var a0 = [];
shouldBe("forInSum(a0)", "''");
var a1 = [ 'a' ];
shouldBe("forInSum(a1)", "'a'");
shouldBe("String([3,1,'2'].sort())", "'1,2,3'");
shouldBe("String([,'x','aa'].sort())", "'aa,x,'"); // don't assume 'x'>undefined !
// sort by length
function comp(a, b) {
var la = String(a).length;
var lb = String(b).length;
if (la < lb)
return -1;
else if (la > lb)
return 1;
else
return 0;
}
shouldBe("var a = ['aa', 'b', 'cccc', 'ddd']; String(a.sort(comp))", "'b,aa,ddd,cccc'");
// +/-Infinity as function return value
shouldBe("[0, Infinity].sort(function(a, b) { return a - b }).toString()",
"'0,Infinity'");
// Array.unshift()
shouldBe("[].unshift('a')", "1");
shouldBe("['c'].unshift('a', 'b')", "3");
shouldBe("var a = []; a.unshift('a'); String(a)", "'a'");
shouldBe("var a = ['c']; a.unshift('a', 'b'); String(a)", "'a,b,c'");
// Array.splice()
shouldBe("String(['a', 'b', 'c'].splice(1, 2, 'x', 'y'))", "'b,c'");
var maxint = Math.pow(2,32)-1;
var arr = new Array();
// 2^32 should not be treated as a valid array index, i.e.
// setting the property on the array should not result in
// the length being modified
arr.length = 40;
arr[maxint] = "test";
shouldBe("arr.length","40");
shouldBe("arr[maxint]","\"test\"");
delete arr[maxint];
shouldBe("arr.length","40");
shouldBe("arr[maxint]","undefined");
arr[maxint-1] = "test2";
shouldBe("arr.length","maxint");
shouldBe("arr[maxint-1]","\"test2\"");
arr = new Array('a','b','c');
arr.__proto__ = { 1: 'x' };
var propnames = new Array();
for (i in arr)
propnames.push(i);
propnames.sort();
shouldBe("propnames.length","3");
shouldBe("propnames[0]","'0'");
shouldBe("propnames[1]","'1'");
shouldBe("propnames[2]","'2'");
function testToString() {
// backup
var backupNumberToString = Number.prototype.toString;
var backupNumberToLocaleString = Number.prototype.toLocaleString;
var backupRegExpToString = RegExp.prototype.toString;
var backupRegExpToLocaleString = RegExp.prototype.toLocaleString;
// change functions
Number.prototype.toString = function() { return "toString"; }
Number.prototype.toLocaleString = function() { return "toLocaleString"; }
RegExp.prototype.toString = function() { return "toString2"; }
RegExp.prototype.toLocaleString = function() { return "toLocaleString2"; }
// the tests
shouldBe("[1].toString()", "'1'");
shouldBe("[1].toLocaleString()", "'toLocaleString'");
Number.prototype.toLocaleString = "invalid";
shouldBe("[1].toLocaleString()", "'1'");
shouldBe("[/r/].toString()", "'toString2'");
shouldBe("[/r/].toLocaleString()", "'toLocaleString2'");
RegExp.prototype.toLocaleString = "invalid";
shouldBe("[/r/].toLocaleString()", "'toString2'");
var caught = false;
try {
[{ toString : 0 }].toString();
} catch (e) {
caught = true;
}
shouldBeTrue("caught");
// restore
Number.prototype.toString = backupNumberToString;
Number.prototype.toLocaleString = backupNumberToLocaleString;
RegExp.prototype.toString = backupRegExpToString;
RegExp.prototype.toLocaleString = backupRegExpToLocaleString;
}
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/Boolean.js
Index: Boolean.js
===================================================================
shouldBe("Boolean()", "false");
shouldBe("Boolean(true)", "true");
shouldBe("Boolean(false)", "false");
shouldBe("(new Boolean(true)).valueOf()", "true");
shouldBe("(new Boolean(false)).valueOf()", "false");
shouldBe("(new Boolean(Boolean(true))).valueOf()", "true");
shouldBeTrue("true.valueOf() === true");
shouldBeTrue("false.toString() === 'false'");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/Date.js
Index: Date.js
===================================================================
debug("Start Of Test");
shouldBeTrue("isNaN(Date.prototype.valueOf())");
var d = new Date(1017492323515); // Sat Mar 30 13:45:23 GMT+0100 (CET) 2002
// shouldBe("d.getUTCHours()", "12");
// shouldBe("d.getHours()", "12");
shouldBe("d.getMinutes()", "45");
shouldBe("d.getUTCMinutes()", "45");
shouldBe("d.getDay()", "6");
shouldBe("d.getMonth()", "2");
shouldBe("d.getFullYear()", "2002");
// string/number conversions
shouldBe("Number(d)", "1017492323515");
shouldBe("Boolean(d)", "true");
shouldBe("(new Date(100)).valueOf()", "100");
shouldBe("(new Date(true)).valueOf()", "1");
shouldBe("(new Date(false)).valueOf()", "0");
shouldBe("typeof (new Date()).toString()", "'string'");
shouldBe("typeof ('' + new Date())", "'string'");
shouldBe("typeof (new Date() + new Date())", "'string'");
shouldBeTrue("isNaN(Number(new Date('foo')))");
shouldBe("new Date(10001) - new Date(10000)", "1");
shouldBe("'' - new Date(10000)", "-10000");
shouldBe("2 * new Date(10000)", "20000");
shouldBe("var d = new Date(); d == String(d)", "true");
var d0 = new Date(2004, 0, 1, 0, 0, 0, 0);
shouldBe("d0.getHours()","0");
var d1 = new Date(Date.UTC(2004, 0, 1, 0, 0, 0, 0));
shouldBe("d1.getUTCHours()","0");
d1.setUTCHours(1999,6,9);
d1.setUTCHours(11,22,33);
shouldBe("d1.getUTCHours()","11");
var d2 = new Date();
d2.setMilliseconds(11);
shouldBe("d2.getMilliseconds()", "11");
d2.setSeconds(11, 22);
shouldBe("d2.getSeconds()", "11");
shouldBe("d2.getMilliseconds()", "22");
d2.setMinutes(11, 22, 33);
shouldBe("d2.getMinutes()", "11");
shouldBe("d2.getSeconds()", "22");
shouldBe("d2.getMilliseconds()", "33");
d2.setHours(11, 22, 33, 44);
shouldBe("d2.getHours()", "11");
shouldBe("d2.getMinutes()", "22");
shouldBe("d2.getSeconds()", "33");
shouldBe("d2.getMilliseconds()", "44");
d2.setMonth(3, 20);
shouldBe("d2.getMonth()", "3");
shouldBe("d2.getDate()", "20");
d2.setFullYear(1976, 3, 20);
shouldBe("d2.getFullYear()", "1976");
shouldBe("d2.getMonth()", "3");
shouldBe("d2.getDate()", "20");
// ### fix: shouldBe("d2.setYear(-1), d2.getFullYear()", "-1");
shouldBe("d2.setYear(0), d2.getFullYear()", "1900");
shouldBe("d2.setYear(1), d2.getFullYear()", "1901");
shouldBe("d2.setYear(99), d2.getFullYear()", "1999");
shouldBe("d2.setYear(100), d2.getFullYear()", "100");
shouldBe("d2.setYear(2050), d2.getFullYear()", "2050");
shouldBe("d2.setYear(1899), d2.getFullYear()", "1899");
shouldBe("d2.setYear(2000), d2.getFullYear()", "2000");
shouldBe("d2.setYear(2100), d2.getFullYear()", "2100");
// date parsing
// from kdelibs/kdecore/tests/krfcdatetest.cpp
var dateRef = new Date('Thu Nov 5 1994 18:15:30 GMT+0500');
// debug(dateRef);
shouldBe( "dateRef.getDay()", "6"); // It was in fact a Saturday
shouldBe( "dateRef.getDate()", "5");
shouldBe( "dateRef.getMonth()", "10");
shouldBe( "dateRef.getYear()", "94"); // like NS, and unlike IE, by default
shouldBe( "dateRef.getFullYear()", "1994");
shouldBe( "dateRef.getMinutes()", "15");
shouldBe( "dateRef.getSeconds()", "30");
shouldBe( "dateRef.getUTCDay()", "6"); // It was in fact a Saturday
shouldBe( "dateRef.getUTCDate()", "5");
shouldBe( "dateRef.getUTCMonth()", "10");
shouldBe( "dateRef.getUTCFullYear()", "1994");
shouldBe( "dateRef.getUTCHours()", "13");
shouldBe( "dateRef.getUTCMinutes()", "15");
shouldBe( "dateRef.getUTCSeconds()", "30");
d = new Date('Thu Nov 5 1994 18:15:30 GMT+05:00');
shouldBe( "d.toUTCString()", "dateRef.toUTCString()");
shouldBe( "d.toUTCString().replace('GMT', '+0000')", "'Sat, 05 Nov 1994 13:15:30 +0000'"); // It was in fact a Saturday
dateRef = new Date('Thu Nov 5 2065 18:15:30 GMT+0500');
// debug(dateRef);
shouldBe( "dateRef.getDay()", "4");
shouldBe( "dateRef.getDate()", "5");
shouldBe( "dateRef.getMonth()", "10");
// shouldBe( "dateRef.getYear()", "65"); // Should this be 65 or 165 ??
shouldBe( "dateRef.getFullYear()", "2065");
shouldBe( "dateRef.getMinutes()", "15");
shouldBe( "dateRef.getSeconds()", "30");
shouldBe( "dateRef.getUTCDay()", "4");
shouldBe( "dateRef.getUTCDate()", "5");
shouldBe( "dateRef.getUTCMonth()", "10");
shouldBe( "dateRef.getUTCFullYear()", "2065");
shouldBe( "dateRef.getUTCHours()", "13");
shouldBe( "dateRef.getUTCMinutes()", "15");
shouldBe( "dateRef.getUTCSeconds()", "30");
dateRef = new Date('Wed Nov 5 2064 18:15:30 GMT+0500'); // Leap year
// debug(dateRef);
shouldBe( "dateRef.getDay()", "3");
shouldBe( "dateRef.getDate()", "5");
shouldBe( "dateRef.getMonth()", "10");
// shouldBe( "dateRef.getYear()", "64"); // Should this be 64 or 164 ??
shouldBe( "dateRef.getFullYear()", "2064");
shouldBe( "dateRef.getMinutes()", "15");
shouldBe( "dateRef.getSeconds()", "30");
shouldBe( "dateRef.getUTCDay()", "3");
shouldBe( "dateRef.getUTCDate()", "5");
shouldBe( "dateRef.getUTCMonth()", "10");
shouldBe( "dateRef.getUTCFullYear()", "2064");
shouldBe( "dateRef.getUTCHours()", "13");
shouldBe( "dateRef.getUTCMinutes()", "15");
shouldBe( "dateRef.getUTCSeconds()", "30");
/*
// Shouldn't this work?
dateRef = new Date('Sat Nov 5 1864 18:15:30 GMT+0500');
// debug(dateRef);
shouldBe( "dateRef.getDay()", "6");
shouldBe( "dateRef.getDate()", "5");
shouldBe( "dateRef.getMonth()", "10");
// shouldBe( "dateRef.getYear()", "64"); // Should this be 64 ??
shouldBe( "dateRef.getFullYear()", "1864");
shouldBe( "dateRef.getMinutes()", "15");
shouldBe( "dateRef.getSeconds()", "30");
shouldBe( "dateRef.getUTCDay()", "3");
shouldBe( "dateRef.getUTCDate()", "5");
shouldBe( "dateRef.getUTCMonth()", "10");
shouldBe( "dateRef.getUTCFullYear()", "1864");
shouldBe( "dateRef.getUTCHours()", "13");
shouldBe( "dateRef.getUTCMinutes()", "15");
shouldBe( "dateRef.getUTCSeconds()", "30");
*/
d = new Date('Tue Nov 5 2024 18:15:30 GMT+05:00');
shouldBe( "d.toUTCString().replace('GMT', '+0000')", "'Tue, 05 Nov 2024 13:15:30 +0000'");
d = new Date('Mon Nov 5 2040 18:15:30 GMT+05:00');
shouldBe( "d.toUTCString().replace('GMT', '+0000')", "'Mon, 05 Nov 2040 13:15:30 +0000'");
d = new Date('Fri Nov 5 2100 18:15:30 GMT+05:00');
shouldBe( "d.toUTCString().replace('GMT', '+0000')", "'Fri, 05 Nov 2100 13:15:30 +0000'");
d = new Date('Fri Nov 5 2004 03:15:30 GMT+05:00'); // Timezone crosses day barrier
shouldBe( "d.toUTCString().replace('GMT', '+0000')", "'Thu, 04 Nov 2004 22:15:30 +0000'");
// AM/PM
shouldBe("(new Date('Dec 25 1995 1:30 PM UTC')).valueOf()", "819898200000");
shouldBe("(new Date('Dec 25 1995 1:30 pm UTC')).valueOf()", "819898200000");
shouldBe("(new Date('Dec 25 1995 1:30 AM UTC')).valueOf()", "819855000000");
shouldBe("(new Date('Dec 25 1995 1:30 am UTC')).valueOf()", "819855000000");
shouldBe("(new Date('Dec 25 1995 12:00 PM UTC')).valueOf()", "819892800000");
shouldBe("(new Date('Dec 25 1995 12:00 AM UTC')).valueOf()", "819849600000");
shouldBe("(new Date('Dec 25 1995 00:00 AM UTC')).valueOf()", "819849600000");
shouldBe("(new Date('Dec 25 1995 00:00 PM UTC')).valueOf()", "819892800000");
shouldBeTrue("isNaN(new Date('Dec 25 1995 13:30 AM UTC')).valueOf()");
/*
// Don't work in any other browsers
d = new Date('Wednesday, 05-Nov-94 13:15:30 GMT');
shouldBe( "d.toUTCString()", "dateRef.toUTCString()");
d = new Date('Wed, 05-Nov-1994 13:15:30 GMT');
shouldBe( "d.toUTCString()", "dateRef.toUTCString()");
d = new Date('Wed, 05-November-1994 13:15:30 GMT');
shouldBe( "d.toUTCString()", "dateRef.toUTCString()");
// Works only in EST/EDT
d = new Date('November 5, 1994 08:15:30');
debug(d);
shouldBe( "d.toUTCString()", "dateRef.toUTCString()");
var dateRef2 = new Date('July 1, 2004 10:00 EDT');
d = new Date('July 1, 2004 10:00');
debug(d);
shouldBe( "d.toUTCString()", "dateRef2.toUTCString()");
shouldBe("new Date('Wednesday 09-Nov-99 13:12:40 GMT').getMonth()", "10"); // not parsed in moz
shouldBe("new Date('Sat, 01-Dec-2000 08:00:00 GMT').getMonth()", "11"); // not parsed in moz
*/
shouldBe("new Date('Sat, 01 Dec 2000 08:00:00 GMT').getMonth()", "11");
shouldBe("new Date('01 Jan 99 22:00 +0100').getFullYear()", "1999");
shouldBe("new Date('May 09 1999 13:12:40 GMT').getDate()", "9");
shouldBe("new Date('Wednesday February 09 1999 13:12:40 GMT').getMonth()", "1");
shouldBe("new Date('Wednesday January 09 1999 13:12:40 GMT').getFullYear()", "1999");
shouldBe("new Date('Wednesday January 09 13:12:40 GMT 1999').getFullYear()", "1999");
shouldBe("new Date('Wednesday January 06 13:12:40 GMT 2100').getFullYear()", "2100");
shouldBe("(new Date('\\n21\\rFeb\\f\\v\\t 2004')).getFullYear()", "2004"); // ws
shouldBe("(new Date('Dec 25 1995 gmt')).valueOf()", "819849600000");
shouldBe("(new Date('Dec 25 1995 utc')).valueOf()", "819849600000");
// Those two fail in Konqueror, due to time_t being limited to 2037 !
// moved to evil-n.js shouldBe("new Date('3/31/2099').getFullYear()", "2099");
// moved to evil-n.js shouldBe("new Date('3/31/2099').getMonth()", "2");
//shouldBe("new Date('3/31/2099').getDate()",31);
shouldBe("new Date('3/31/2005').getDate()", "31");
shouldBe("new Date('3/31/2005').getHours()", "0");
shouldBe("new Date('7/31/2005').getHours()", "0"); // DST
shouldBe("new Date('3/31/2005 GMT').getFullYear()", "2005");
shouldBe("new Date('3/31/2005 12:45:15').getDate()", "31");
shouldBe("new Date('3/31/2005 12:45:15').getMonth()", "2");
shouldBe("new Date('3/31/2005 12:45:15').getSeconds()", "15");
shouldBe("new Date('2003/02/03').getMonth()", "1");
// ### not sure how to interpret this: new Date('25/12/2005')
// ### shouldBe("new Date('1950/02/03').getFullYear()", "1950");
shouldBe("new Date('2003/02/03 02:01:04 UTC').getSeconds()", "4");
var jul27Str = 'July 27, 2003'
var jul27Num = new Date(jul27Str).valueOf();
shouldBe("jul27Num", "Date.parse(jul27Str).valueOf()");
// expect NaN, not undefined
shouldBe("typeof Date.parse(0)", "'number'");
shouldBeTrue("isNaN(Date.parse(0))");
// parse string *object*
shouldBe("Date.parse(new String(jul27Str)).valueOf()", "jul27Num");
// invalid dates
shouldBeTrue("isNaN(Number(new Date('01 ANF 2000')))"); // middle of JANFEB :)
shouldBeTrue("isNaN(Number(new Date('ANF 01 2000')))");
d = new Date("January 1, 2000");
var oldHours = d.getHours();
d.setMonth(8);
shouldBe("oldHours", "d.getHours()");
// some time values in different (implementation) ranges
shouldBe("Date.UTC(1800, 0, 1)", "-5364662400000");
shouldBe("Date.UTC(1800, 2, 1)", "-5359564800000"); // one day after Feb 28th
shouldBe("Date.UTC(1899, 0, 1)", "-2240524800000");
shouldBe("Date.UTC(1900, 0, 1)", "-2208988800000");
shouldBe("Date.UTC(1960, 0, 1)", "-315619200000");
shouldBe("Date.UTC(1970, 0, 1)", "0");
shouldBe("Date.UTC(3000, 0, 1)", "32503680000000");
// same dates as above
shouldBe("(new Date(-5364662400000)).valueOf()", "-5364662400000");
shouldBe("(new Date(-2240524800000)).valueOf()", "-2240524800000");
shouldBe("(new Date(-2208988800000)).valueOf()", "-2208988800000");
shouldBe("(new Date(-315619200000)).valueOf()", "-315619200000");
shouldBe("(new Date(0)).valueOf()", "0");
shouldBe("(new Date(32503680000000)).valueOf()", "32503680000000");
d = new Date(2010, 0, 1);
//shouldBe("d.valueOf()", "32503676400000");
shouldBe("d.getDay()", "5");
// large and small year numbers
d = new Date(3000, 0, 1);
//shouldBe("d.valueOf()", "32503676400000");
//shouldBe("(new Date(3000, 0, 1)).valueOf()", "Date.UTC(3000, 0, 1)");
shouldBeTrue("d.getYear() == 1100 || d.getYear() == 3000");
shouldBe("d.getFullYear()", "3000");
shouldBe("d.getDay()", "3");
shouldBe("d.getHours()", "0");
shouldBe("new Date('3/31/2099').getFullYear()", "2099");
shouldBe("new Date('3/31/2099').getMonth()", "2");
d = new Date(Date.UTC(3000, 0, 1));
shouldBe("d.valueOf()", "32503680000000");
shouldBe("d.getUTCDay()", "3");
shouldBe("d.getUTCHours()", "0");
d = new Date(1899, 0, 1);
shouldBe("d.getFullYear()", "1899");
shouldBeTrue("d.getYear() == -1 || d.getYear() == 1899"); // Moz or IE
shouldBe("d.getDay()", "0");
shouldBe("d.getHours()", "0");
d = new Date(Date.UTC(3000, 0, 1));
shouldBe("d.getUTCDay()", "3");
d = new Date(Date.UTC(1899, 0, 1));
shouldBe("d.getUTCDay()", "0");
shouldBe( "d.toUTCString().replace('GMT', '+0000')", "'Sun, 01 Jan 1899 00:00:00 +0000'");
// out of range values. have to be caught by TimeClip()
shouldBe("Number(new Date(8.64E15))", "8.64E15");
shouldBe("Number(new Date(-8.64E15))", "-8.64E15");
shouldBeTrue("isNaN(new Date(8.6400001E15))");;
shouldBeTrue("isNaN(new Date(-8.6400001E15))");;
// other browsers don't mind the missing space
shouldBe("(new Date('January29,2005')).getDate()", "29");
shouldBe("(new Date('12/25/1995 ::')).valueOf()",
"(new Date('12/25/1995')).valueOf()");
debug("End Of Test");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/Error.js
Index: Error.js
===================================================================
// Error constructor called as a function
shouldBe("Error('msg').message", "'msg'");
// Error Constructor called as part of a new expression
shouldBe("(new Error('msg')).message", "'msg'");
// moved to evil-n.js shouldBeUndefined("(new Error()).message");
shouldBe("(new Error('msg')).name", "'Error'");
shouldBe("Object.prototype.toString.apply(Error())", "'[object Error]'");
shouldBe("Object.prototype.toString.apply(Error)", "'[object Function]'");
shouldBe("Object.prototype.toString.apply(EvalError)", "'[object Function]'");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/GlobalObject.js
Index: GlobalObject.js
===================================================================
var h = "a\xefc";
var u = "a\u1234c";
var z = "\x00";
shouldBe("h.charCodeAt(1)", "239");
shouldBe("u.charCodeAt(1)", "4660");
shouldBe("escape(h)", "'a%EFc'");
shouldBe("escape(u)", "'a%u1234c'");
shouldBe("escape(z)", "'%00'");
shouldBe("unescape(escape(h))", "h");
shouldBe("unescape(escape(u))", "u");
shouldBe("unescape(escape(z))", "z");
shouldBeTrue("isNaN(NaN)");
shouldBeTrue("isNaN('NaN')");
shouldBeFalse("isNaN('1')");
shouldBeTrue("isFinite(1)");
shouldBeTrue("isFinite('1')");
// all should return NaN because 1st char is non-number
shouldBeFalse("isFinite('a')");
shouldBe('isNaN(parseInt("Hello", 8))', "true");
shouldBe('isNaN(parseInt("FFF", 10))', "true");
shouldBe('isNaN(parseInt(".5", 10))', "true");
shouldBeFalse("isFinite(Infinity)");
shouldBeFalse("isFinite('Infinity')");
shouldBeTrue("isNaN(parseInt())");
shouldBeTrue("isNaN(parseInt(''))");
shouldBeTrue("isNaN(parseInt(' '))");
shouldBeTrue("isNaN(parseInt('a'))");
shouldBe("parseInt(1)", "1");
shouldBe("parseInt(1234567890123456)", "1234567890123456");
shouldBe("parseInt(1.2)", "1");
shouldBe("parseInt(' 2.3')", "2");
shouldBe("parseInt('0x10')", "16");
shouldBe("parseInt('11', 0)", "11");
shouldBe("parseInt('F', 16)", "15");
shouldBeTrue("isNaN(parseInt('10', 40))");
shouldBe("parseInt('3x')", "3");
shouldBe("parseInt('3 x')", "3");
shouldBeTrue("isNaN(parseInt('Infinity'))");
// all should return 15
shouldBe('parseInt("15")', "15");
shouldBe('parseInt("017")', "15"); /// The spec says it's ok, and even encouraged, to parse this as 17!
shouldBe('parseInt("0xf")', "15");
shouldBe('parseInt("15", 0)', "15");
shouldBe('parseInt("15", 10)', "15");
shouldBe('parseInt("F", 16)', "15");
shouldBe('parseInt("17", 8)', "15");
shouldBe('parseInt("15.99", 10)', "15");
shouldBe('parseInt("FXX123", 16)', "15");
shouldBe('parseInt("1111", 2)', "15");
shouldBe('parseInt("15*3", 10)', "15");
// this should be 0
shouldBe('parseInt("0x7", 10)', "0");
shouldBe('parseInt("1x7", 10)', "1");
shouldBeTrue("isNaN(parseFloat())");
shouldBeTrue("isNaN(parseFloat(''))");
shouldBeTrue("isNaN(parseFloat(' '))");
shouldBeTrue("isNaN(parseFloat('a'))");
shouldBe("parseFloat(1)", "1");
shouldBe("parseFloat(' 2.3')", "2.3");
shouldBe("parseFloat('3.1 x', 3)", "3.1");
shouldBe("parseFloat('3.1x', 3)", "3.1");
shouldBeFalse("isFinite(parseFloat('Infinity'))");
shouldBeFalse("delete NaN");
shouldBeFalse("delete Infinity");
shouldBeFalse("delete undefined");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/KNOWN_FAILURES
Index: KNOWN_FAILURES
===================================================================
evil-n.js
1.1 LayoutTests/fast/js/kde/resources/Number.js
Index: Number.js
===================================================================
shouldBe("Number()", "0");
shouldBe("Number(1)", "1");
shouldBe("Number(1.1)", "1.1");
shouldBe("Number('1.2')", "1.2");
shouldBe("isNaN(Number('a'))", "true");
shouldBe("(new Number()).valueOf()", "0");
shouldBe("(new Number(.4)).valueOf()", "0.4");
shouldBe("(new Number('1.')).valueOf()", "1");
shouldBe("isNaN(new Number('a'))", "true");
shouldBe("isNaN(Number.NaN)", "true");
shouldBe("Number.NEGATIVE_INFINITY", "-Infinity");
shouldBe("Number.POSITIVE_INFINITY", "Infinity");
// with (Number)
// shouldBe("POSITIVE_INFINITY", "Infinity");
shouldBe("(1).toString()", "'1'");
shouldBe("typeof (1).toString()", "'string'");
shouldBe("(10).toString(16)", "'a'");
shouldBe("(8.5).toString(16)", "'8.8'");
shouldBe("(-8.5).toString(16)", "'-8.8'");
shouldBe("Number.NaN.toString(16)", "'NaN'");
shouldBe("Number.POSITIVE_INFINITY.toString(16)", "'Infinity'");
shouldBe("Number.NEGATIVE_INFINITY.toString(16)", "'-Infinity'");
shouldBe("Number.MAX_VALUE.toString(2).length", "1024");
shouldBe("(1).valueOf()", "1");
shouldBe("typeof (1).valueOf()", "'number'");
function toFixedOrException(val,fractionDigits)
{
var s = "";
try {
s = String(Number(val).toFixed(fractionDigits));
}
catch (e) {
s = String(e);
}
return s;
}
shouldBe("Number(1234.567).toFixed(0)","\"1235\"");
shouldBe("Number(1234.567).toFixed(undefined)","\"1235\"");
shouldBe("Number(0).toFixed(7)","\"0.0000000\"");
shouldBe("Number(0.003).toFixed(0)","\"0\"");
shouldBe("Number(40.1234567890123).toFixed(7)","\"40.1234568\"");
shouldBe("Number(-40.1234567890123).toFixed(7)","\"-40.1234568\"");
shouldBe("Number(4).toFixed(7)","\"4.0000000\"");
shouldBe("Number(0.000056).toFixed(7)","\"0.0000560\"");
shouldBe("Number(NaN).toFixed(7)","\"NaN\"");
shouldBe("Number(Infinity).toFixed(7)","\"Infinity\"");
shouldBe("Number(-Infinity).toFixed(7)","\"-Infinity\"");
shouldBe("Number(Math.pow(10,4)).toFixed(13)","\"10000.0000000000000\"");
shouldBe("Number(Math.pow(10,17)).toFixed(16)","\"100000000000000000.0000000000000000\"");
shouldBe("Number(Math.pow(10,18)).toFixed(17)","\"1000000000000000000.00000000000000000\"");
shouldBe("Number(Math.pow(10,19)).toFixed(18)","\"10000000000000000000.000000000000000000\"");
shouldBe("Number(Math.pow(10,17)).toFixed(20)","\"100000000000000000.00000000000000000000\"");
shouldBe("Number(Math.pow(10,18)).toFixed(20)","\"1000000000000000000.00000000000000000000\"");
shouldBe("Number(Math.pow(10,19)).toFixed(20)","\"10000000000000000000.00000000000000000000\"");
shouldBe("Number(Math.pow(10,20)).toFixed(20)","\"100000000000000000000.00000000000000000000\"");
shouldBe("Number(Math.pow(10,21)).toFixed(20)","\"1e+21\"");
shouldBeTrue("toFixedOrException(2,-1).indexOf('Range') >= 0");
shouldBe("toFixedOrException(2,0)","\"2\"");
shouldBe("toFixedOrException(2,20)","\"2.00000000000000000000\"");
shouldBeTrue("toFixedOrException(2,21).indexOf('Range') >= 0");
shouldBe("Number(NaN).toExponential()","\"NaN\"");
shouldBe("Number(Infinity).toExponential()","\"Infinity\"");
shouldBe("Number(-Infinity).toExponential()","\"-Infinity\"");
shouldBe("Number(NaN).toExponential(4)","\"NaN\"");
shouldBe("Number(Infinity).toExponential(4)","\"Infinity\"");
shouldBe("Number(-Infinity).toExponential(4)","\"-Infinity\"");
shouldBe("Number(123.456).toExponential()","\"1.23456e+2\"");
shouldBeTrue("try { Number(123.456).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBe("Number(123.456).toExponential(0)","\"1e+2\"");
shouldBe("Number(123.456).toExponential(1)","\"1.2e+2\"");
shouldBe("Number(123.456).toExponential(2)","\"1.23e+2\"");
shouldBe("Number(123.456).toExponential(3)","\"1.235e+2\"");
shouldBe("Number(123.456).toExponential(4)","\"1.2346e+2\"");
shouldBe("Number(123.456).toExponential(5)","\"1.23456e+2\"");
shouldBe("Number(123.456).toExponential(6)","\"1.234560e+2\"");
shouldBe("Number(123.456).toExponential(7)","\"1.2345600e+2\"");
shouldBe("Number(123.456).toExponential(8)","\"1.23456000e+2\"");
shouldBe("Number(123.456).toExponential(9)","\"1.234560000e+2\"");
shouldBe("Number(123.456).toExponential(10)","\"1.2345600000e+2\"");
shouldBe("Number(123.456).toExponential(11)","\"1.23456000000e+2\"");
shouldBe("Number(123.456).toExponential(12)","\"1.234560000000e+2\"");
shouldBe("Number(123.456).toExponential(13)","\"1.2345600000000e+2\"");
shouldBe("Number(123.456).toExponential(14)","\"1.23456000000000e+2\"");
shouldBe("Number(123.456).toExponential(15)","\"1.234560000000000e+2\"");
shouldBe("Number(123.456).toExponential(16)","\"1.2345600000000000e+2\"");
shouldBe("Number(123.456).toExponential(17)","\"1.23456000000000000e+2\"");
shouldBe("Number(123.456).toExponential(18)","\"1.234560000000000000e+2\"");
shouldBe("Number(123.456).toExponential(19)","\"1.2345600000000000000e+2\"");
shouldBe("Number(123.456).toExponential(20)","\"1.23456000000000000000e+2\"");
shouldBeTrue("try { Number(123.456).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBe("Number(.000123456).toExponential()","\"1.23456e-4\"");
shouldBeTrue("try { Number(.000123456).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBe("Number(.000123456).toExponential(0)","\"1e-4\"");
shouldBe("Number(.000123456).toExponential(1)","\"1.2e-4\"");
shouldBe("Number(.000123456).toExponential(2)","\"1.23e-4\"");
shouldBe("Number(.000123456).toExponential(3)","\"1.235e-4\"");
shouldBe("Number(.000123456).toExponential(4)","\"1.2346e-4\"");
shouldBe("Number(.000123456).toExponential(5)","\"1.23456e-4\"");
shouldBe("Number(.000123456).toExponential(6)","\"1.234560e-4\"");
shouldBe("Number(.000123456).toExponential(7)","\"1.2345600e-4\"");
shouldBe("Number(.000123456).toExponential(8)","\"1.23456000e-4\"");
shouldBe("Number(.000123456).toExponential(9)","\"1.234560000e-4\"");
shouldBe("Number(.000123456).toExponential(10)","\"1.2345600000e-4\"");
shouldBe("Number(.000123456).toExponential(11)","\"1.23456000000e-4\"");
shouldBe("Number(.000123456).toExponential(12)","\"1.234560000000e-4\"");
shouldBe("Number(.000123456).toExponential(13)","\"1.2345600000000e-4\"");
shouldBe("Number(.000123456).toExponential(14)","\"1.23456000000000e-4\"");
shouldBe("Number(.000123456).toExponential(15)","\"1.234560000000000e-4\"");
shouldBe("Number(.000123456).toExponential(16)","\"1.2345600000000000e-4\"");
shouldBe("Number(.000123456).toExponential(17)","\"1.23456000000000000e-4\"");
shouldBe("Number(.000123456).toExponential(18)","\"1.234560000000000000e-4\"");
shouldBe("Number(.000123456).toExponential(19)","\"1.2345600000000000000e-4\"");
shouldBe("Number(.000123456).toExponential(20)","\"1.23456000000000000000e-4\"");
shouldBeTrue("try { Number(.000123456).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBe("Number(123.4567890123456789012).toExponential()","\"1.2345678901234568e+2\"");
shouldBeTrue("try { Number(123.4567890123456789012).toExponential(-1) } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBe("Number(123.4567890123456789012).toExponential(0)","\"1e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(1)","\"1.2e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(2)","\"1.23e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(3)","\"1.235e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(4)","\"1.2346e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(5)","\"1.23457e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(6)","\"1.234568e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(7)","\"1.2345679e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(8)","\"1.23456789e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(9)","\"1.234567890e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(10)","\"1.2345678901e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(11)","\"1.23456789012e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(12)","\"1.234567890123e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(13)","\"1.2345678901235e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(14)","\"1.23456789012346e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(15)","\"1.234567890123457e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(16)","\"1.2345678901234570e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(17)","\"1.23456789012345700e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(18)","\"1.234567890123457100e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(19)","\"1.2345678901234570000e+2\"");
shouldBe("Number(123.4567890123456789012).toExponential(20)","\"1.23456789012345700000e+2\"");
shouldBeTrue("try { Number(123.4567890123456789012).toExponential(21) } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBe("Number(.0000000000000000000001).toExponential()","\"1e-22\"");
shouldBe("Number(.0000000000000000000012).toExponential()","\"1.2e-21\"");
shouldBe("Number(.0000000000000000000123).toExponential()","\"1.23e-20\"");
shouldBe("Number(.0000000000000000000123).toExponential()","\"1.23e-20\"");
shouldBe("Number(.0000000000000000001234).toExponential()","\"1.234e-19\"");
shouldBe("Number(.0000000000000000012345).toExponential()","\"1.2345e-18\"");
shouldBe("Number(.0000000000000000123456).toExponential()","\"1.23456e-17\"");
shouldBe("Number(.0000000000000001234567).toExponential()","\"1.234567e-16\"");
shouldBe("Number(.0000000000000012345678).toExponential()","\"1.2345678e-15\"");
shouldBe("Number(.0000000000000123456789).toExponential()","\"1.23456789e-14\"");
shouldBe("Number(.0000000000001234567890).toExponential()","\"1.23456789e-13\"");
shouldBe("Number(.0000000000012345678901).toExponential()","\"1.2345678901e-12\"");
shouldBe("Number(.0000000000123456789012).toExponential()","\"1.23456789012e-11\"");
shouldBe("Number(.0000000001234567890123).toExponential()","\"1.234567890123e-10\"");
shouldBe("Number(.0000000012345678901234).toExponential()","\"1.2345678901234e-9\"");
shouldBe("Number(.0000000123456789012345).toExponential()","\"1.23456789012345e-8\"");
shouldBe("Number(.0000001234567890123456).toExponential()","\"1.234567890123456e-7\"");
shouldBe("Number(.0000012345678901234567).toExponential()","\"1.2345678901234567e-6\"");
shouldBe("Number(.0000123456789012345678).toExponential()","\"1.2345678901234568e-5\"");
shouldBe("Number(.0001234567890123456789).toExponential()","\"1.2345678901234567e-4\"");
shouldBe("Number(.0012345678901234567890).toExponential()","\"1.2345678901234567e-3\"");
shouldBe("Number(.0123456789012345678901).toExponential()","\"1.2345678901234568e-2\"");
shouldBe("Number(1.234567890123456789012).toExponential()","\"1.2345678901234567e+0\"");
shouldBe("Number(12.34567890123456789012).toExponential()","\"1.2345678901234567e+1\"");
shouldBe("Number(123.4567890123456789012).toExponential()","\"1.2345678901234568e+2\"");
shouldBe("Number(1234.567890123456789012).toExponential()","\"1.234567890123457e+3\"");
shouldBe("Number(12345.67890123456789012).toExponential()","\"1.2345678901234567e+4\"");
shouldBe("Number(123456.7890123456789012).toExponential()","\"1.2345678901234567e+5\"");
shouldBe("Number(1234567.890123456789012).toExponential()","\"1.2345678901234567e+6\"");
shouldBe("Number(12345678.90123456789012).toExponential()","\"1.2345678901234567e+7\"");
shouldBe("Number(123456789.0123456789012).toExponential()","\"1.2345678901234567e+8\"");
shouldBe("Number(1234567890.123456789012).toExponential()","\"1.2345678901234567e+9\"");
shouldBe("Number(12345678901.23456789012).toExponential()","\"1.2345678901234568e+10\"");
shouldBe("Number(123456789012.3456789012).toExponential()","\"1.2345678901234567e+11\"");
shouldBe("Number(1234567890123.456789012).toExponential()","\"1.2345678901234568e+12\"");
shouldBe("Number(12345678901234.56789012).toExponential()","\"1.2345678901234568e+13\"");
shouldBe("Number(123456789012345.6789012).toExponential()","\"1.2345678901234567e+14\"");
shouldBe("Number(1234567890123456.789012).toExponential()","\"1.2345678901234568e+15\"");
shouldBe("Number(12345678901234567.89012).toExponential()","\"1.2345678901234568e+16\"");
shouldBe("Number(123456789012345678.9012).toExponential()","\"1.2345678901234568e+17\"");
shouldBe("Number(1234567890123456789.012).toExponential()","\"1.2345678901234568e+18\"");
shouldBe("Number(12345678901234567890.12).toExponential()","\"1.2345678901234567e+19\"");
shouldBe("Number(123456789012345678901.2).toExponential()","\"1.2345678901234568e+20\"");
shouldBeTrue("try { Number(1).toPrecision(-1); } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBeTrue("try { Number(1).toPrecision(0); } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBe("try { Number(1).toPrecision(1); } catch (e) { String(e); }","\"1\"");
shouldBe("try { Number(1).toPrecision(21); } catch (e) { String(e); }","\"1.00000000000000000000\"");
shouldBeTrue("try { Number(1).toPrecision(22); } catch (e) { String(e).indexOf('Range') >= 0; }");
shouldBe("Number(NaN).toPrecision()","\"NaN\"");
shouldBe("Number(NaN).toPrecision(1)","\"NaN\"");
shouldBe("Number(Infinity).toPrecision()","\"Infinity\"");
shouldBe("Number(Infinity).toPrecision(1)","\"Infinity\"");
shouldBe("Number(-Infinity).toPrecision()","\"-Infinity\"");
shouldBe("Number(-Infinity).toPrecision(1)","\"-Infinity\"");
shouldBe("Number(.0000000012345).toPrecision(2)","\"1.2e-9\"");
shouldBe("Number(.000000012345).toPrecision(2)","\"1.2e-8\"");
shouldBe("Number(.00000012345).toPrecision(2)","\"1.2e-7\"");
shouldBe("Number(.0000012345).toPrecision(2)","\"0.0000012\"");
shouldBe("Number(.000012345).toPrecision(2)","\"0.000012\"");
shouldBe("Number(.00012345).toPrecision(2)","\"0.00012\"");
shouldBe("Number(.0012345).toPrecision(2)","\"0.0012\"");
shouldBe("Number(.012345).toPrecision(2)","\"0.012\"");
shouldBe("Number(.12345).toPrecision(2)","\"0.12\"");
shouldBe("Number(1.2345).toPrecision(2)","\"1.2\"");
shouldBe("Number(12.345).toPrecision(2)","\"12\"");
shouldBe("Number(123.45).toPrecision(2)","\"1.2e+2\"");
shouldBe("Number(1234.5).toPrecision(2)","\"1.2e+3\"");
shouldBe("Number(12345).toPrecision(2)","\"1.2e+4\"");
shouldBe("Number(12345.67).toPrecision(4)","\"1.235e+4\"");
shouldBe("Number(12344.67).toPrecision(4)","\"1.234e+4\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision()","\"0.00012345678901234567\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(1)","\"0.0001\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(2)","\"0.00012\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(3)","\"0.000123\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(4)","\"0.0001235\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(5)","\"0.00012346\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(6)","\"0.000123457\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(7)","\"0.0001234568\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(8)","\"0.00012345679\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(9)","\"0.000123456789\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(10)","\"0.0001234567890\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(11)","\"0.00012345678901\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(12)","\"0.000123456789012\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(13)","\"0.0001234567890123\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(14)","\"0.00012345678901235\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(15)","\"0.000123456789012346\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(16)","\"0.0001234567890123457\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(17)","\"0.00012345678901234568\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(18)","\"0.000123456789012345680\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(19)","\"0.0001234567890123456800\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(20)","\"0.00012345678901234567000\"");
shouldBe("Number(0.0001234567890123456789012345).toPrecision(21)","\"0.000123456789012345680000\"");
shouldBe("Number(12345.67890123456789012345).toPrecision()","\"12345.678901234567\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(1)","\"1e+4\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(2)","\"1.2e+4\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(3)","\"1.23e+4\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(4)","\"1.235e+4\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(5)","\"12346\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(6)","\"12345.7\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(7)","\"12345.68\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(8)","\"12345.679\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(9)","\"12345.6789\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(10)","\"12345.67890\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(11)","\"12345.678901\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(12)","\"12345.6789012\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(13)","\"12345.67890123\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(14)","\"12345.678901235\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(15)","\"12345.6789012346\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(16)","\"12345.67890123457\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(17)","\"12345.678901234568\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(18)","\"12345.6789012345660\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(19)","\"12345.67890123456800\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(20)","\"12345.678901234565000\"");
shouldBe("Number(12345.67890123456789012345).toPrecision(21)","\"12345.6789012345670000\"");
shouldBe("Number(0).toPrecision()","\"0\"");
shouldBe("Number(0).toPrecision(1)","\"0\"");
shouldBe("Number(0).toPrecision(2)","\"0.0\"");
shouldBe("Number(0).toPrecision(3)","\"0.00\"");
shouldBe("Number(0).toPrecision(4)","\"0.000\"");
shouldBe("Number(0).toPrecision(5)","\"0.0000\"");
shouldBe("Number(0).toPrecision(6)","\"0.00000\"");
shouldBe("Number(0).toPrecision(7)","\"0.000000\"");
shouldBe("Number(0).toPrecision(8)","\"0.0000000\"");
shouldBe("Number(0).toPrecision(9)","\"0.00000000\"");
shouldBe("Number(0).toPrecision(10)","\"0.000000000\"");
shouldBe("Number(0).toPrecision(11)","\"0.0000000000\"");
shouldBe("Number(0).toPrecision(12)","\"0.00000000000\"");
shouldBe("Number(0).toPrecision(13)","\"0.000000000000\"");
shouldBe("Number(0).toPrecision(14)","\"0.0000000000000\"");
shouldBe("Number(0).toPrecision(15)","\"0.00000000000000\"");
shouldBe("Number(0).toPrecision(16)","\"0.000000000000000\"");
shouldBe("Number(0).toPrecision(17)","\"0.0000000000000000\"");
shouldBe("Number(0).toPrecision(18)","\"0.00000000000000000\"");
shouldBe("Number(0).toPrecision(19)","\"0.000000000000000000\"");
shouldBe("Number(0).toPrecision(20)","\"0.0000000000000000000\"");
shouldBe("Number(0).toPrecision(21)","\"0.00000000000000000000\"");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/Object.js
Index: Object.js
===================================================================
shouldBe("typeof Object()", "'object'");
shouldBe("var o = Object(); o.x = 11; o.x;", "11"); // wanted behaviour ?
// shouldBe("Object(undefined)", ???);
// shouldBe("Object(null)", ???);
shouldBe("Object(1).valueOf()", "1");
shouldBe("Object(true).valueOf()", "true");
shouldBe("Object('s').valueOf()", "'s'");
shouldBe("typeof (new Object())", "'object'");
// shouldBe("new Object(undefined)", ???);
// shouldBe("new Object(null)", ???);
shouldBe("(new Object(1)).valueOf()", "1");
shouldBe("(new Object(true)).valueOf()", "true");
shouldBe("(new Object('s')).valueOf()", "'s'");
shouldBe("String(Object())", "'[object Object]'");
shouldBe("Object().toString()", "'[object Object]'");
shouldBe("String(Object().valueOf())", "'[object Object]'");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/Prototype.js
Index: Prototype.js
===================================================================
///////////////////////////////////////////////////////
function Square(x)
{
this.x = x;
}
new Square(0); // create prototype
function Square_area() { return this.x * this.x; }
Square.prototype.area = Square_area;
var s = new Square(3);
shouldBe("s.area()", "9");
///////////////////////////////////////////////////////
function Item(name){
this.name = name;
}
function Book(name, author){
this.base = Item; // set Item constructor as method of Book object
this.base(name); // set the value of name property
this.author = author;
}
Book.prototype = new Item;
var b = new Book("a book", "Fred"); // create object instance
//edebug(e"b.name"));
shouldBe("b.name", "'a book'");
shouldBe("b.author", "'Fred'"); // outpus "Fred"
///////////////////////////////////////////////////////
shouldBe("delete Boolean.prototype", "false");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/README
Index: README
===================================================================
========================================================================
The KDE JavaScript Test Suite
========================================================================
This is a collection of JavaScript (aka ECMAScript) code snipplets
used to test the KDE JavaScript library (dubbed kjs). Most of them
once triggered a bug in the implementation of the
interpreter. Allthough these bugs are probably fixed by now theses
tests can still be used for regression testing.
NOTE:
Don't confuse this code with the HTML bindings for the khtml
widget. Those are implemented in a seperate module residing in
kdelibs/khtml/ecma. Test for those can be found elsewhere.
USAGE:
You can evaluate .js files with a binary called 'testkjs' as long as
they contain pure ECMAScript code without any references to browser
specific properties. To build 'testkjs' simply invoke 'make check'
inside of the kdelibs/kjs source directory. Most tests rely on helper
functions like shouldBe(). Those are collected in base.js and have to
be evaluated before the actual test. testkjs accepts multiple input
files in the command line. Therefore a typical test run might look
like this:
testkjs base.js operators.js
For temporary debugging you may use the debug() function which prints
its output to stderr.
NAMING CONVENTION:
*.js regular test
j-*.js JavaScript/JScript extensions not covered by ECMA
*-n.js code that is supposed to trigger a parse/compile error
FUTURE:
All tests could easily be run in a row by a script. If they all stick
to a unified output format (e.g. via shouldBe()) all results can be
parsed and analyzed automatically. Maybe to a summary HTML page. In
case the test suite grows we would need to provide more info about
each test. This could look like:
startTest("ECMA 15.4.2", "Testing the Array Constructor");
// ...
endTest();
PLEA:
In case you find any yet unknown bug please reduce it to a minimal test case
either send it to me or add it to this repository yourself.
Harri Porten <porten at kde.org>
1.1 LayoutTests/fast/js/kde/resources/RegExp.js
Index: RegExp.js
===================================================================
shouldBe("(new RegExp()).source", "''");
shouldBe("Boolean(new RegExp())", "true");
shouldBeTrue("isNaN(Number(new RegExp()))");
// RegExp constructor called as a function
shouldBe("RegExp(/x/).source", "'x'");
//shouldBe("RegExp(/x/, 'g').source", "'/x/'"); // can't supply flags when constructing one RegExp from another, says mozilla
shouldBe("RegExp('x', 'g').global", "true");
shouldBe("RegExp('x').source", "'x'");
// RegExp constructor
shouldBe("new RegExp('x').source", "'x'");
var ri = /a/i;
var rm = /a/m;
var rg = /a/g;
shouldBeFalse("(/a/).global");
shouldBe("typeof (/a/).global", "'boolean'");
shouldBeTrue("rg.global");
shouldBeFalse("(/a/).ignoreCase");
shouldBeTrue("ri.ignoreCase");
shouldBeFalse("(/a/).multiline");
shouldBeTrue("rm.multiline");
shouldBe("rg.toString()", "'/a/g'");
shouldBe("ri.toString()", "'/a/i'");
shouldBe("rm.toString()", "'/a/m'");
// check properety attributes
rg.global = false;
shouldBeTrue("rg.global");
ri.ignoreCase = false;
shouldBeTrue("ri.ignoreCase");
rm.multiline = false;
shouldBeTrue("rm.multiline");
shouldBe("Boolean(/a/.test)", "true");
shouldBe("/(b)c/.exec('abcd').toString()", "\"bc,b\"");
shouldBe("/(b)c/.exec('abcd').length", "2");
shouldBe("/(b)c/.exec('abcd').index", "1");
shouldBe("/(b)c/.exec('abcd').input", "'abcd'");
var rs = /foo/;
rs.source = "bar";
shouldBe("rs.source", "'foo'");
shouldBe("var r = new RegExp(/x/); r.global=true; r.lastIndex = -1; typeof r.test('a')", "'boolean'");
shouldBe("'abcdefghi'.match(/(abc)def(ghi)/).toString()","'abcdefghi,abc,ghi'");
shouldBe("/(abc)def(ghi)/.exec('abcdefghi').toString()","'abcdefghi,abc,ghi'");
shouldBe("RegExp.$1","'abc'");
shouldBe("RegExp.$2","'ghi'");
shouldBe("RegExp.$3","''");
shouldBe("'abcdefghi'.match(/(a(b(c(d(e)f)g)h)i)/).toString()", "'abcdefghi,abcdefghi,bcdefgh,cdefg,def,e'");
shouldBe("RegExp.$1","'abcdefghi'");
shouldBe("RegExp.$2","'bcdefgh'");
shouldBe("RegExp.$3","'cdefg'");
shouldBe("RegExp.$4","'def'");
shouldBe("RegExp.$5","'e'");
shouldBe("RegExp.$6","''");
shouldBe("'(100px 200px 150px 15px)'.match(/\\((\\d+)(px)* (\\d+)(px)* (\\d+)(px)* (\\d+)(px)*\\)/).toString()","'(100px 200px 150px 15px),100,px,200,px,150,px,15,px'");
shouldBe("RegExp.$1","'100'");
shouldBe("RegExp.$3","'200'");
shouldBe("RegExp.$5","'150'");
shouldBe("RegExp.$7","'15'");
shouldBe("''.match(/\((\\d+)(px)* (\\d+)(px)* (\\d+)(px)* (\\d+)(px)*\)/)","null");
shouldBe("RegExp.$1","''");
shouldBe("RegExp.$3","''");
shouldBe("RegExp.$5","''");
shouldBe("RegExp.$7","''");
var invalidChars = /[^@\.\w]/g; // #47092
shouldBe("'faure at kde.org'.match(invalidChars) == null", "true");
shouldBe("'faure-kde at kde.org'.match(invalidChars) == null", "false");
shouldBe("'test1test2'.replace('test','X')","'X1test2'");
shouldBe("'test1test2'.replace(/\\d/,'X')","'testXtest2'");
shouldBe("'1test2test3'.replace(/\\d/,'')","'test2test3'");
shouldBe("'test1test2'.replace(/test/g,'X')","'X1X2'");
shouldBe("'1test2test3'.replace(/\\d/g,'')","'testtest'");
shouldBe("'1test2test3'.replace(/x/g,'')","'1test2test3'");
shouldBe("'test1test2'.replace(/(te)(st)/g,'$2$1')","'stte1stte2'");
shouldBe("'foo+bar'.replace(/\\+/g,'%2B')", "'foo%2Bbar'");
var caught = false; try { new RegExp("+"); } catch (e) { caught = true; }
shouldBeTrue("caught"); // #40435
shouldBe("'foo'.replace(/z?/g,'x')", "'xfxoxox'");
shouldBe("'test test'.replace(/\\s*/g,'')","'testtest'"); // #50985
shouldBe("'abc$%@'.replace(/[^0-9a-z]*/gi,'')","'abc'"); // #50848
shouldBe("'ab'.replace(/[^\\d\\.]*/gi,'')","''"); // #75292
shouldBe("'1ab'.replace(/[^\\d\\.]*/gi,'')","'1'"); // #75292
shouldBe("'1test2test3blah'.split(/test/).toString()","'1,2,3blah'");
var reg = /(\d\d )/g;
var str = new String('98 76 blah');
shouldBe("reg.exec(str).toString()","'98 ,98 '");
shouldBe("reg.lastIndex","3");
shouldBe("RegExp.$1","'98 '");
shouldBe("RegExp.$2","''");
shouldBe("reg.exec(str).toString()","'76 ,76 '");
shouldBe("reg.lastIndex","6");
shouldBe("RegExp.$1","'76 '");
shouldBe("RegExp.$2","''");
shouldBe("reg.exec(str)","null");
shouldBe("reg.lastIndex","0");
// http://www.devguru.com/Technologies/ecmascript/quickref/regexp_lastindex.html
// Looks IE-only though
//shouldBe( "var re=/ships*\s/; re.exec('the hardships of traveling'); re.lastIndex", "14" );
//shouldBe( "var re=/ships*\s/; str='the hardships of traveling'; re.exec(str); re.exec(str); re.lastIndex", "0" );
// http://devedge.netscape.com/library/manuals/2000/javascript/1.5/guide/regexp.html
shouldBe( "myRe=/d(b+)d/g; myArray = myRe.exec('cdbbdbsbz'); myRe.lastIndex", "5" );
reg = /^u/i;
shouldBeTrue("reg.ignoreCase == true");
shouldBeTrue("reg.global === false");
shouldBeTrue("reg.multiline === false");
shouldBeTrue("reg.test('UGO')");
// regexp are writable ?
shouldBe("reg.x = 1; reg.x", "1");
// shared data ?
shouldBe("var r2 = reg; r2.x = 2; reg.x", "2");
var str = new String("For more information, see Chapter 3.4.5.1");
re = /(chapter \d+(\.\d)*)/i;
// This returns the array containing Chapter 3.4.5.1,Chapter 3.4.5.1,.1
// 'Chapter 3.4.5.1' is the first match and the first value remembered from (Chapter \d+(\.\d)*).
// '.1' is the second value remembered from (\.\d)
shouldBe("str.match(re).toString()","'Chapter 3.4.5.1,Chapter 3.4.5.1,.1'");
str = "abcDdcba";
// The returned array contains D, d.
shouldBe("str.match(/d/gi).toString()","'D,d'");
// unicode escape sequence
shouldBe("/\\u0061/.source", "'\\\\u0061'");
shouldBe("'abc'.match(/\\u0062/).toString()", "'b'");
shouldBe("Object.prototype.toString.apply(RegExp.prototype)",
"'[object RegExp]'");
// not sure what this should return. most importantly
// it doesn't throw an exception
shouldBe("typeof RegExp.prototype.toString()", "'string'");
debug("Done.");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/StringObject.js
Index: StringObject.js
===================================================================
// String object
shouldBe("'abc'.length", "3");
shouldBe("(new String('abcd')).length", "4");
shouldBe("String('abcde').length", "5");
// String.charAt()
shouldBe("'abc'.charAt(0)", "'a'");
shouldBe("'abc'.charAt(1)", "'b'");
shouldBe("'abc'.charAt(-1)", "''");
shouldBe("'abc'.charAt(99)", "''");
shouldBe("'abc'.charAt()", "'a'");
// String.prototype.indexOf()
shouldBe("'ab'.indexOf('a')", "0");
shouldBe("'ab'.indexOf('b')", "1");
shouldBe("'ab'.indexOf('x')", "-1");
shouldBe("'ab'.indexOf('')", "0");
shouldBe("''.indexOf('')", "0");
shouldBe("'ab'.indexOf('a', -1)", "0");
shouldBe("'ab'.indexOf('b', 1)", "1");
shouldBe("'ab'.indexOf('a', 1)", "-1");
shouldBe("' '.indexOf('', 1)", "1");
// String.prototype.search()
shouldBe("String('abc').search(/b/)", "1");
shouldBe("String('xyz').search(/b/)", "-1");
// String.prototype.match()
shouldBe("String('abcb').match(/b/) + ''", "'b'");
shouldBe("typeof String('abc').match(/b/)", "'object'");
shouldBe("'xyz'.match(/b/)", "null");
shouldBe("'xyz'.match(/b/g)", "null");
shouldBe("String('aabab'.match(/ab/g))", "'ab,ab'");
shouldBe("String('aabab'.match(/(a)(b)/))","'ab,a,b'");
shouldBe("String('aabab'.match(/(a)(b)/g))","'ab,ab'");
shouldBe("String('abc'.match(/./g))","'a,b,c'");
shouldBe("String('abc'.match(/.*/g))","'abc,'");
// match() doesn't modify lastIndex (at least in moz)
shouldBe("var reg = /ab/g; 'aabab'.match(reg); reg.lastIndex", "0");
shouldBe("var reg = /ab/g; 'aabab'.match(reg).length", "2");
shouldBe("var reg = /ab/g; 'xxx'.match(reg); reg.lastIndex", "0");
shouldBe("var reg = /ab/g; 'xxx'.match(reg)", "null");
shouldBe( "myRe=/d(b+)d/g; 'cdbbdbsbz'.match(myRe)[0]", "'dbbd'" );
// String.prototype.replace()
shouldBe("'abcd'.replace(/b./, 'xy')", "'axyd'");
shouldBe("'abcd'.replace('bc', 'x')", "'axd'");
shouldBe("'abcd'.replace('x', 'y')", "'abcd'");
shouldBe("'abcd'.replace(/(ab)(cd)/,'$2$1')", "'cdab'");
shouldBe("'abcd'.replace(/(ab)(cd)/,'$2$1$')", "'cdab$'");
shouldBe("'BEGINabcEND'.replace(/abc/,'x$')", "'BEGINx$END'");
var f2c_str, f2c_p1, f2c_offset, f2c_s;
function f2c(x) {
var s = String(x)
var test = /(\d+(?:\.\d*)?)F\b/g
return s.replace(test,
function (str,p1,offset,s) {
f2c_str=str; f2c_p1=p1; f2c_offset=offset; f2c_s=s;
return ((p1-32) * 5/9) + "C";
}
)
}
shouldBe("f2c('The value is 212F')", "'The value is 100C'");
shouldBe("f2c_str", "'212F'");
shouldBe("f2c_p1", "'212'");
shouldBe("f2c_offset", "13");
shouldBe("f2c_s", "'The value is 212F'");
// String.prototype.split()
shouldBe("'axb'.split('x').length", "2");
shouldBe("'axb'.split('x')[0]", "'a'");
shouldBe("'axb'.split('x')[1]", "'b'");
shouldBe("String('abc'.split(''))", "'a,b,c'");
shouldBe("String('abc'.split(new RegExp()))", "'a,b,c'");
shouldBe("''.split('').length", "0");
shouldBe("'axb'.split('x', 0).length", "0");
shouldBe("'axb'.split('x', 0)[0]", "undefined");
shouldBe("'axb'.split('x', 1).length", "1");
shouldBe("'axb'.split('x', 99).length", "2");
shouldBe("'axb'.split('y') + ''", "'axb'");
shouldBe("'axb'.split('y').length", "1");
shouldBe("''.split('x') + ''", "''");
shouldBe("'abc'.split() + ''", "'abc'");
shouldBe("'axxb'.split(/x/) + ''", "'a,,b'");
shouldBe("'axxb'.split(/x+/) + ''", "'a,b'");
shouldBe("'axxb'.split(/x*/) + ''", "'a,b'"); // NS 4.7 is wrong here
// moved to evil-n.js shouldBe("''.split(/.*/).length", "0");
// String.prototype.slice()
shouldBe("'abcdef'.slice(2, 5)", "'cde'");
shouldBe("'abcdefghijklmnopqrstuvwxyz1234567890'.slice(-32, -6)",
"'efghijklmnopqrstuvwxyz1234'");
shouldBe("'abC1'.toUpperCase()", "'ABC1'");
shouldBe("'AbC2'.toLowerCase()", "'abc2'");
// warning: prototype modification below
shouldBe("'abc'[0]", "'a'");
shouldBeUndefined("'abc'[-1]");
shouldBeUndefined("'abc'[10]");
String.prototype[10] = "x";
shouldBe("'abc'[10]", "'x'");
var foo = "This is a test.";
var bar = foo.link( "javascript:foo( 'This ', 'is ', 'a test' )");
var html = "<a href=\"javascript:foo( 'This ', 'is ', 'a test' )\">This is a test.</a>"
shouldBe("bar", "html");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/assignments.js
Index: assignments.js
===================================================================
// simple assignment
shouldBe("var i = 1; i", "1");
shouldBe("j = k = 2", "2");
shouldBeUndefined("var i; i");
// compound assignments
shouldBe("var i = 1; i <<= 2", "4");
shouldBe("var i = 8; i >>= 1", "4");
shouldBe("var i = 1; i >>= 2", "0");
shouldBe("var i = -8; i >>= 24", "-1");
shouldBe("var i = 8; i >>>= 2", "2");
shouldBe("var i = -8; i >>>= 24", "255");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/base.js
Index: base.js
===================================================================
// Utility functions for JS test suite
// (c) 2001 Harri Porten <porten at kde.org>
function testPassed(msg)
{
debug("PASS. " + msg);
}
function testFailed(msg)
{
debug("FAIL. " + msg);
// regtest.reportResult(false, msg);
}
function shouldBe(_a, _b)
{
if (typeof _a != "string" || typeof _b != "string")
debug("WARN: shouldBe() expects string arguments");
var _av = eval(_a);
var _bv = eval(_b);
if (_av === _bv)
testPassed(_a + " is " + _b);
else
testFailed(_a + " should be " + _bv + ". Was " + _av);
}
function shouldBeTrue(_a) { shouldBe(_a, "true"); }
function shouldBeFalse(_a) { shouldBe(_a, "false"); }
function shouldBeUndefined(_a)
{
var _av = eval(_a);
if (typeof _av == "undefined")
testPassed(_a + " is undefined.");
else
testFailed(_a + " should be undefined. Was " + _av);
}
1.1 LayoutTests/fast/js/kde/resources/cast.js
Index: cast.js
===================================================================
shouldBeTrue("Boolean(1) === true");
shouldBeTrue("var s = String; s(1) === '1'");
shouldBeTrue("n = Number; n(true) === 1");
shouldBe("String(Array('a', 'b' ))", "'a,b'");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/comment-1.js
Index: comment-1.js
===================================================================
// comment with linebreak
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/comment-2.js
Index: comment-2.js
===================================================================
// comment with linebreak
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/completion.js
Index: completion.js
===================================================================
var i = 1;
function foo() {
i = 2;
return;
i = 3;
}
shouldBe("foo(), i", "2");
var caught = false;
try { eval("return;"); } catch(e) { caught = true; }
shouldBeTrue("caught");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/conditional.js
Index: conditional.js
===================================================================
shouldBe("true ? 1 : 2", "1");
shouldBe("false ? 1 : 2", "2");
shouldBe("'abc' ? 1 : 2", "1");
shouldBe("null ? 1 : 2", "2");
shouldBe("undefined ? 1 : 2", "2");
var a = 1;
if ( undefined )
a = 2;
shouldBe("/*var a=1;if (undefined) a = 2;*/ a", "1");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/const.js
Index: const.js
===================================================================
// constant definition
const c = 11;
shouldBe("c", "11");
// attempt to redefine should have no effect
c = 22;
shouldBe("c", "11");
const dummy = 0;
for (var v = 0;;) {
++v;
shouldBe("v", "1");
break;
}
// ### check for forbidden redeclaration
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/constructor_length.js
Index: constructor_length.js
===================================================================
shouldBe("Object.length","1");
shouldBe("Function.length","1");
shouldBe("Array.length","1");
shouldBe("String.length","1");
shouldBe("Boolean.length","1");
shouldBe("Number.length","1");
shouldBe("Date.length","7");
shouldBe("RegExp.length","2");
shouldBe("Error.length","1");
shouldBe("EvalError.length","1");
shouldBe("RangeError.length","1");
shouldBe("ReferenceError.length","1");
shouldBe("SyntaxError.length","1");
shouldBe("TypeError.length","1");
shouldBe("URIError.length","1");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/crash-1.js
Index: crash-1.js
===================================================================
// infinite recursion
try {
var v = [];
v[0] = v;
v.toString();
} catch (e) {
debug("OK. Caught an exception.");
}
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/crash-2.js
Index: crash-2.js
===================================================================
// infinite recursion 2
function foo() {
foo();
}
try {
foo();
} catch (e) {
debug("OK. Caught an exception");
}
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/delete.js
Index: delete.js
===================================================================
shouldBe("a = 1; delete a;", "true");
shouldBe("delete nonexistant;", "true");
shouldBe("delete NaN", "false");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/empty.js
Index: empty.js
===================================================================
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/encode_decode_uri.js
Index: encode_decode_uri.js
===================================================================
/*
var enc = encodeURI;
var dec = decodeURI;
//var enc = encodeURIComponent;
//var dec = decodeURIComponent;
function printstr(i,j)
{
var str;
if (j == undefined)
str = "x"+String.fromCharCode(i)+"x";
else
str = "x"+String.fromCharCode(i)+String.fromCharCode(j)+"x";
var encoded = "(exception)";
var decoded = "(unknown)";
try {
encoded = enc(str);
decoded = "(exception)";
decoded = dec(encoded);
}
catch (e) {
}
var prefix = i;
if (j != undefined)
prefix += "/" + j;
var match;
if (encoded == "(exception)" || decoded == "(exception)")
match = "";
else if (str == decoded)
match = " (match)";
else
match = " (nomatch)";
print(prefix+": encoded "+encoded+" decoded "+decoded+" "+match);
}
for (var charcode = 0; charcode <= 0xFFFF; charcode++)
printstr(charcode);
for (var charcode = 0xDC00; charcode <= 0xDFFF; charcode++)
printstr(0xD800,charcode);
for (var charcode = 0xD800; charcode <= 0xDBFF; charcode++)
printstr(charcode,0xD800);
*/
// --------------------------------------------------------------------------------
var resolution = 13; // set to 1 for 100% coverage
function checkEncodeException(encodeFunction,c1,c2)
{
var str;
if (c2 == undefined)
str = "x"+String.fromCharCode(c1)+"x";
else
str = "x"+String.fromCharCode(c1)+String.fromCharCode(c2)+"x";
try {
encodeFunction(str);
// print("checkEncodeException("+c1+","+c2+"): false");
return false;
}
catch (e) {
// print("checkEncodeException("+c1+","+c2+"): true");
return true;
}
}
function checkEncodeDecode(encodeFunction,decodeFunction,c1,c2)
{
var str;
if (c2 == undefined)
str = "x"+String.fromCharCode(c1)+"x";
else
str = "x"+String.fromCharCode(c1)+String.fromCharCode(c2)+"x";
try {
var encoded = encodeFunction(str);
var decoded = decodeFunction(encoded);
// print("checkEncodeDecode("+c1+","+c2+"): "+(str == decoded));
return (str == decoded);
}
catch (e) {
// print("checkEncodeDecode("+c1+","+c2+"): false (exception)");
return false;
}
}
function checkWithFunctions(encodeFunction,decodeFunction)
{
var passes = 0;
var failures = 0;
// 0-0xD800 and 0xDC00-0xFFF
for (var charcode = 0; charcode < 0xD800; charcode += resolution) {
if (checkEncodeDecode(encodeFunction,decodeFunction,charcode))
passes++;
else
failures++;
}
for (var charcode = 0xE000; charcode <= 0xFFFF; charcode += resolution) {
if (checkEncodeDecode(encodeFunction,decodeFunction,charcode))
passes++;
else
failures++;
}
// 0xDC00-0xDFFF
for (var charcode = 0xDC00; charcode <= 0xDFFF; charcode += resolution) {
if (checkEncodeException(encodeFunction,charcode))
passes++;
else
failures++;
}
// 0xD800-0xDBFF followed by 0xDC00-0xDFFF
for (var charcode = 0xD800; charcode < 0xDC00; charcode += resolution) {
if (checkEncodeDecode(encodeFunction,decodeFunction,charcode,0xDC00))
passes++;
else
failures++;
}
for (var charcode = 0xDC00; charcode < 0xE000; charcode += resolution) {
if (checkEncodeDecode(encodeFunction,decodeFunction,0xD800,charcode))
passes++;
else
failures++;
}
// 0xD800-0xDBFF _not_ followed by 0xDC00-0xDFFF
for (var charcode = 0; charcode < 0xDC00; charcode += resolution) {
if (checkEncodeException(encodeFunction,0xD800,charcode))
passes++;
else
failures++;
}
for (var charcode = 0xE000; charcode <= 0xFFFF; charcode += resolution) {
if (checkEncodeException(encodeFunction,0xD800,charcode))
passes++;
else
failures++;
}
// print("passes = "+passes);
// print("failures = "+failures);
return (failures == 0);
}
shouldBe("checkWithFunctions(encodeURI,decodeURI)","true");
shouldBe("checkWithFunctions(encodeURIComponent,decodeURIComponent)","true");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/eval.js
Index: eval.js
===================================================================
shouldBe("eval.length", "1");
shouldBe("eval('this')", "this");
function MyObject() {
this.x = 99;
}
eval("b = new MyObject();");
var bx = b.x // rule out side effects of eval() in shouldBe() test function
shouldBe("bx", "99");
eval("var c = new MyObject();"); // the 'var' makes a difference
var cx = c.x;
shouldBe("cx", "99");
// KDE bug #45679
if (true.eval) {
var o = { str:1 };
shouldBe("o.eval('str')", "1");
shouldBe("o.eval('this')", "this");
} else {
testPassed("Skipping test for deprecated Object.prototype.eval()");
}
// problem from within khtml
function lotto() {
// j must be accessible to eval()
for (var j = 0; j < 1; j++)
return eval('j');
}
shouldBe("lotto()", "0");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/evil-n.js
Index: evil-n.js
===================================================================
shouldBeUndefined("(new Error()).message");
// the empty match isn't taken in account
shouldBe("''.split(/.*/).length", "0");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/exception_propagation.js
Index: exception_propagation.js
===================================================================
var global = this;
function myfunc() {
}
function throwex() {
throw new Error("test exception");
}
//---------------------------
var func_ret_with_ex_func = 4;
try {
func_ret_with_ex_func = throwex()();
}
catch (e) {
}
shouldBe("func_ret_with_ex_func", "4");
// ---------------------------------
var func_ret_from_ex_throw_args = 4;
try {
func_ret_from_ex_throw_args = Math.abs(throwex());
}
catch (e) {
}
shouldBe("func_ret_from_ex_throw_args", "4");
// ---------------------------------
var set_from_throw_func_args = 4;
try {
throwex()(set_from_throw_func_args = 1);
}
catch (e) {
}
shouldBe("set_from_throw_func_args","4");
// ---------------------------------
var set_from_func_throw_args = 4;
try {
myfunc(throwex(), set_from_func_throw_args = 1);
}
catch (e) {
}
shouldBe("set_from_func_throw_args","4");
// ---------------------------------
var set_from_before_func_throw_args = 4;
try {
myfunc(set_from_before_func_throw_args = 1, throwex());
}
catch (e) {
}
shouldBe("set_from_before_func_throw_args","1");
// ---------------------------------
// ### move to function.js
var function_param_order = "";
function aparam() {
function_param_order += "a";
}
function bparam() {
function_param_order += "b";
}
function cparam() {
function_param_order += "c";
}
myfunc(aparam(),bparam(),cparam());
shouldBe("function_param_order","'abc'");
// ---------------------------------
// ### move to function.js
var new_param_order = "";
function anewparam() {
new_param_order += "a";
}
function bnewparam() {
new_param_order += "b";
}
function cnewparam() {
new_param_order += "c";
}
new myfunc(anewparam(),bnewparam(),cnewparam());
shouldBe("new_param_order","'abc'");
// ---------------------------------
// ### move to function.js
var elision_param_order = "";
function aelision() {
elision_param_order += "a";
}
function belision() {
elision_param_order += "b";
}
function celision() {
elision_param_order += "c";
}
[aelision(),belision(),celision()];
shouldBe("elision_param_order","'abc'");
// ---------------------------------
// ### move to function.js
var comma_order = "";
function acomma() {
comma_order += "a";
}
function bcomma() {
comma_order += "b";
}
function ccomma() {
comma_order += "c";
}
acomma(),bcomma(),ccomma();
shouldBe("comma_order","'abc'");
// ---------------------------------
function checkOperator(op,name) {
var code =(
"global."+name+"_part1 = 4;\n"+
"try {\n"+
" ("+name+"_part1 = 1) "+op+" throwex();\n"+
"}\n"+
"catch (e) {\n"+
"}\n"+
"shouldBe('"+name+"_part1', '1');\n"+
"global."+name+"_part2 = 4;\n"+
"try {\n"+
" throwex() "+op+" ("+name+"_part2 = 1);\n"+
"}\n"+
"catch (e) {\n"+
"}\n"+
"shouldBe('"+name+"_part2', '4');\n");
// print("\n\n\n");
// print(code);
eval(code);
}
checkOperator("==","OpEqEq");
checkOperator("!=","OpNotEq");
checkOperator("===","OpStrEq");
checkOperator("!==","OpStrNEq");
// ### these generate a syntax error in mozilla - kjs should do the same (?)
//checkOperator("+=","OpPlusEq");
//checkOperator("-=","OpMinusEq");
//checkOperator("*=","OpMultEq");
//checkOperator("/=","OpDivEq");
// OpPlusPlus,
// OpMinusMinus,
checkOperator("<","OpLess");
checkOperator("<=","OpLessEq");
checkOperator(">","OpGreater");
checkOperator(">=","OpGreaterEq");
//checkOperator("&=","OpAndEq");
//checkOperator("^=","OpXOrEq");
//checkOperator("|=","OpOrEq");
//checkOperator("%=","OpModEq");
checkOperator("&&","OpAnd");
checkOperator("||","OpOr");
checkOperator("&","OpBitAnd");
checkOperator("^","OpBitXOr");
checkOperator("|","OpBitOr");
checkOperator("<<","OpLShift");
checkOperator(">>","OpRShift");
checkOperator(">>>","OpURShift");
// OpIn,
checkOperator("instanceof","OpInstanceOf");
// ---------------------------------
var set_from_if_stmt = 4;
try {
if (throwex()) {
set_from_if_stmt = 1;
}
}
catch (e) {
}
shouldBe("set_from_if_stmt","4");
// ---------------------------------
var set_from_if_else_stmt = 4;
try {
if (throwex()) {
set_from_if_else_stmt = 1;
}
else {
undefined;
}
}
catch (e) {
}
shouldBe("set_from_if_else_stmt","4");
// ---------------------------------
var set_from_else_in_if_else_stmt = 4;
try {
if (throwex()) {
undefined;
}
else {
set_from_else_in_if_else_stmt = 1;
}
}
catch (e) {
}
shouldBe("set_from_else_in_if_else_stmt","4");
// ---------------------------------
var comma_left = 4;
try {
comma_left = 1, throwex();
}
catch (e) {
}
shouldBe("comma_left","1");
// ---------------------------------
var comma_left = 4;
try {
throwex(), comma_left = 1;
}
catch (e) {
}
shouldBe("comma_left","4");
var vardecl_assign_throws = 4;
try {
var vardecl_assign_throws = throwex();
}
catch (e) {
}
shouldBe("vardecl_assign_throws","4");
// ---------------------------------
var var_assign_before_throw_run = false;
function var_assign_before_throw() {
var_assign_before_throw_run = true;
return 1;
}
var var_assign_after_throw_run = false;
function var_assign_after_throw() {
var_assign_after_throw_run = true;
return 1;
}
try {
var var_assign1 = var_assign_before_throw(),
var_assign2 = throwex(),
var_assign1 = var_assign_before_throw();
}
catch (e) {
}
shouldBe("var_assign_before_throw_run","true");
shouldBe("var_assign_after_throw_run","false");
// ---------------------------------
var do_val = 4;
try {
do {
do_val++;
}
while (throwex());
}
catch (e) {
}
shouldBe("do_val","5");
// ---------------------------------
var while_val = 4;
try {
while (throwex()) {
while_val++;
}
}
catch (e) {
}
shouldBe("while_val","4");
// ---------------------------------
var for_val_part1_throw2 = 4;
try {
for (for_val_part1_throw2 = 1; throwex(); ) {
}
}
catch (e) {
}
shouldBe("for_val_part1_throw2","1");
// ---------------------------------
var for_val_part1_throw3 = 4;
try {
for (for_val_part1_throw3 = 1; ; throwex()) {
}
}
catch (e) {
}
shouldBe("for_val_part1_throw3","1");
// ---------------------------------
var for_val_part2_throw1 = 4;
try {
for (throwex(); for_val_part2_throw1 = 1; ) {
}
}
catch (e) {
}
shouldBe("for_val_part2_throw1","4");
// ---------------------------------
var for_val_part2_throw3 = 4;
try {
for (; for_val_part2_throw3 = 1; throwex()) {
}
}
catch (e) {
}
shouldBe("for_val_part2_throw3","1");
// ---------------------------------
var for_val_part3_throw1 = 4;
try {
for (throwex(); ; for_val_part3_throw1 = 1) {
}
}
catch (e) {
}
shouldBe("for_val_part3_throw1","4");
// ---------------------------------
var for_val_part3_throw2 = 4;
try {
for (; throwex(); for_val_part3_throw2 = 1) {
}
}
catch (e) {
}
shouldBe("for_val_part3_throw2","4");
// ---------------------------------
var for_val_part1_throwbody = 4;
try {
for (for_val_part1_throwbody = 1; ;) {
throwex();
}
}
catch (e) {
}
shouldBe("for_val_part1_throwbody","1");
// ---------------------------------
var for_val_part2_throwbody = 4;
try {
for (; for_val_part2_throwbody = 1; ) {
throwex();
}
}
catch (e) {
}
shouldBe("for_val_part2_throwbody","1");
// ---------------------------------
var for_val_part3_throwbody = 4;
try {
for (; ; for_val_part3_throwbody = 1) {
throwex();
}
}
catch (e) {
}
shouldBe("for_val_part3_throwbody","4");
// ---------------------------------
// ### mozilla gives a syntax error on for (throwex() in forin_test_obj)... should we?
var forin_test_obj = new Object();
forin_test_obj.a = 1;
forin_test_obj.b = 2;
forin_test_obj.c = 3;
var forin_count = 4;
function forin_lexpr() {
// if (forincount == 1);
// throwex();
return new Object();
}
try {
for (throwex() in forin_test_obj) {
forin_count++;
}
}
catch (e) {
}
shouldBe("forin_count","4");
// ---------------------------------
var set_inside_with_throw = 4;
try {
with (throwex()) {
set_inside_with_throw = 1;
}
}
catch (e) {
}
shouldBe("set_inside_with_throw","4");
// ---------------------------------
var set_inside_with_cantconverttoobject = 4;
try {
with (undefined) {
print("FAIL. This message should not be displayed");
set_inside_with_cantconverttoobject = 1;
}
}
catch (e) {
}
shouldBe("set_inside_with_cantconverttoobject","4");
// ### test case, sw
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/exceptions.js
Index: exceptions.js
===================================================================
function shouldBe(a, b, c)
{
if ( a == b )
debug(c+" .......... PASS");
else
debug(c+" .......... FAIL");
}
function testThrow()
{
var caught = false;
try {
throw 99;
} catch (e) {
caught = true;
}
shouldBe(caught, true, "testing throw()");
}
// same as above but lacking a semicolon after throw
function testThrow2()
{
var caught = false;
try {
throw 99
} catch (e) {
caught = true;
}
shouldBe(caught, true, "testing throw()");
}
function testReferenceError()
{
var err = "noerror";
var caught = false;
try {
var dummy = nonexistant; // throws reference error
} catch (e) {
caught = true;
err = e.name;
}
// test err
shouldBe(caught, true, "ReferenceError");
}
function testFunctionErrorHelper()
{
var a = b; // throws reference error
}
function testFunctionError()
{
var caught = false;
try {
testFunctionErrorHelper();
} catch (e) {
caught = true;
}
shouldBe(caught, true, "error propagation in functions");
}
function testMathFunctionError()
{
var caught = false;
try {
Math();
} catch (e) {
debug("catch");
caught = true;
} finally {
debug("finally");
}
shouldBe(caught, true, "Math() error");
}
function testWhileAbortion()
{
var caught = 0;
try {
while (a=b, 1) { // "endless error" in condition
;
}
} catch (e) {
caught++;
}
try {
while (1) {
var a = b; // error in body
}
} catch (e) {
caught++;
}
shouldBe(caught, 2, "Abort while() on error");
}
debug("Except a lot of errors. They should all be caught and lead to PASS");
testThrow();
testThrow2();
testReferenceError();
testFunctionError();
testMathFunctionError();
testWhileAbortion();
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/function.js
Index: function.js
===================================================================
///////////////////////////////
// empty bodies
function empty1() { ; }
shouldBe("empty1()", "undefined");
function empty2() { }
shouldBe("empty2()", "undefined");
var g = 2;
var obj = new Object();
with (obj) {
obj.func = function(a) { return g*l*a; };
}
obj.l = 3;
shouldBe("obj.func(11)", "66");
///////////////////////////////
function ctor(xx) {
this.x = xx;
this.dummy = new Array(); // once broke the returned completion
}
c = new ctor(11);
shouldBe("c.x", "11");
///////////////////////////////
// anonymous functions
///////////////////////////////
f = function (arg) {
return arg;
};
shouldBe("f('bbbbb')", "'bbbbb'");
function f() {return 1;};
// just verify that this can be parsed
Math.round(function anon() { });
///////////////////////////////
// arguments object
///////////////////////////////
function foo() {
var result = "|";
for (i = 0; i < arguments.length; i++)
result += arguments[i] + "|";
return result;
}
shouldBe("foo()", "'|'");
shouldBe("foo('bar')", "'|bar|'");
shouldBe("foo('bar', 'x')", "'|bar|x|'");
function foo2(a) {
var i = 0;
for(a in arguments) // should NOT be enumerable
i++;
return i;
}
shouldBe("foo2(7)", "0");
// I have my doubts about the standard conformance of this
function foo3(i, j) {
switch(i) {
case 0:
return foo3.arguments.length;
case 1:
return foo3.arguments;
case 2:
return foo3.j;
}
}
shouldBe("foo3(0, 99)", "2");
shouldBe("foo3(1, 99).length", "2");
//shouldBe("foo3(2, 99)", "99"); // IE doesn't support this either
///////////////////////////////
// nested function declarations
///////////////////////////////
function nest0(a, b)
{
function nest1(c) { return c*c; }
return nest1(a*b);
}
shouldBe("nest0(2,3)", "36");
///////////////////////////////
// Function object
///////////////////////////////
shouldBe("(new Function('return 11;'))()", "11");
shouldBe("(new Function('', 'return 22;'))()", "22");
shouldBe("(new Function('a', 'b', 'return a*b;'))(11, 3)", "33");
shouldBe("(new Function(' a ', ' b ', 'return a*b;'))(11, 4)", "44");
shouldBe("(new Function(' a,b ', ' c ', 'return a*b;'))(11, 5)", "55");
shouldBe("(new Function(' a,b ', ' c3 ', 'return a*b;'))(11, 6)", "66");
///////////////////////////////
// length property
function funcp3(a, b, c) { }
shouldBe("funcp3.length", "3");
shouldBe("(function(a, b, c, d) { }).length", "4");
shouldBe("(new Function('a', 'b', '')).length", "2");
// recursive call
function f4(i)
{
return i == 1 ? 1 : i*f4(i-1);
}
shouldBe("f4(4)", "24");
function f5(a) {
return f6();
}
function f6() {
return f5.arguments[0];
}
shouldBe("f5(11)", "11");
shouldBe("f5.arguments", "null");
///////////////////////////////
// calling conventions
///////////////////////////////
function manipulate(x) {
x[0] = 99; // should operate on reference
x = "nothing"; // should detach
}
var arr = new Array(1, 2, 3);
manipulate(arr);
shouldBe("arr[0]", "99");
arr = [1, 2, 3];
manipulate(arr);
shouldBe("arr[0]", "99");
///////////////////////////////
// toString() on functions
///////////////////////////////
function orgFunc(s) { return 'Hello ' + s; }
eval("var orgFuncClone = " + orgFunc);
shouldBe("typeof orgFuncClone", "'function'");
shouldBe("orgFuncClone('world')", "'Hello world'");
function groupFunc(a, b) { return (a+b)*3; } // check for () being preserved
eval("var groupClone = " + groupFunc);
shouldBe("groupClone(1, 2)", "9");
var sinStr = '\nfunction sin() {\n [native code]\n}\n'
shouldBe("String(Math.sin)", "sinStr");
///////////////////////////////
// shadowed functions
///////////////////////////////
function shadow() { return 1; }
function shadow() { return 2; }
shouldBe("shadow()", "2");
///////////////////////////////
// nested functions
var nest_property = "global nest";
function nested_outer() {
function nested_inner() {
return nest_property;
}
}
function not_nested() {
return nest_property;
}
nested_outer.nest_property = "outer nest";
var nested = nested_outer.nested_inner;
var nestedret = nested();
shouldBe("nestedret","'outer nest'");
var not_nestedret = not_nested();
shouldBe("not_nestedret","'global nest'");
///////////////////////////////
// other properties
///////////////////////////////
function sample() { }
shouldBeUndefined("sample.prototype.prototype");
shouldBeTrue("sample.prototype.constructor == sample");
var caught = false;
try {
sample.apply(1, 1); // invalid argument
} catch(dummy) {
caught = true;
}
shouldBeTrue("caught");
function functionWithVarOverride(a) {
var a = 2;
return a;
}
shouldBe("functionWithVarOverride(1)", "2");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/function_arguments.js
Index: function_arguments.js
===================================================================
// check value of arguments inside recursion
var expected = [null,99,1,2,3,3,2,1,99,null];
var expno = 0;
var x = 0;
shouldBe("mf.arguments", "expected[expno++]");
function mf(a,b) {
shouldBe("mf.arguments[0]", "expected[expno++]");
x++;
if (x < 4)
mf(x,1);
shouldBe("mf.arguments[0]", "expected[expno++]");
return b;
}
mf(99);
shouldBe("mf.arguments", "expected[expno++]");
// check internal properties of arguments
// Delete
// DontEnum
var foundArgs = false;
var ReadOnlyOK = false;
var DontDeleteOK = false;
var DontEnumOK = false;
function f(a,b,c) {
// ReadOnly
var newargs = new Object();
var oldargs = f.arguments;
f.arguments = newargs;
ReadOnlyOK = (f.arguments == oldargs);
// DontDelete
DontDeleteOK = !delete(f.arguments);
if (f.arguments != oldargs)
DontDeleteOK = false;
// DontEnum
var foundArgs = false;
for (i in f) {
if (f == "arguments")
foundArgs = true;
}
DontEnumOK = !foundArgs;
}
f(1,2,3);
shouldBeTrue("ReadOnlyOK");
shouldBeTrue("DontDeleteOK");
shouldBeTrue("DontEnumOK");
// Check that parameter variables are bound to the corresponding
// elements in the arguments array
var arg0 = null;
var arg1 = null;
var arg2 = null;
var newarg0 = null;
var newarg1 = null;
var newarg2 = null;
var newx = null;
var arglength = 0;
function dupargs(x,x,x)
{
arg0 = arguments[0];
arg1 = arguments[1];
arg2 = arguments[2];
arglength = arguments.length;
x = 999;
newarg0 = arguments[0];
newarg1 = arguments[1];
newarg2 = arguments[2];
arguments[2] = 888;
newx = x;
}
dupargs(1,2,3);
shouldBe("arg0","1");
shouldBe("arg1","2");
shouldBe("arg2","3");
shouldBe("arglength","3");
shouldBe("newarg0","1");
shouldBe("newarg1","2");
shouldBe("newarg2","999");
shouldBe("newx","888");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/function_constructor.js
Index: function_constructor.js
===================================================================
var myfunc = Function();
shouldBe("myfunc.prototype.constructor.__proto__ == Function.prototype","true");
shouldBe("myfunc.prototype.constructor.__proto__.__proto__ == Object.prototype","true");
shouldBe("myfunc.prototype.constructor == myfunc","true");
shouldBe("Function.prototype.constructor == Function","true");
shouldBe("myfunc.prototype.toString == Object.prototype.toString","true");
shouldBe("myfunc.toString == Function.prototype.toString","true");
//printValue("myfunc"); = "(Internal function)" ### should display code
//printValue("myfunc.prototype.constructor"); = "(Internal function)" ### should display code
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/function_length.js
Index: function_length.js
===================================================================
shouldBe("Array.prototype.toString.length","0");
shouldBe("Array.prototype.toLocaleString.length","0");
shouldBe("Array.prototype.concat.length","0");
shouldBe("Array.prototype.join.length","1");
shouldBe("Array.prototype.pop.length","0");
shouldBe("Array.prototype.push.length","1");
shouldBe("Array.prototype.reverse.length","0");
shouldBe("Array.prototype.shift.length","0");
shouldBe("Array.prototype.slice.length","2"); // 15.4.4.10
shouldBe("Array.prototype.sort.length","1");
shouldBe("Array.prototype.splice.length","2"); // 15.4.4.12
shouldBe("Array.prototype.unshift.length","1");
shouldBe("Boolean.prototype.toString.length","0");
shouldBe("Boolean.prototype.valueOf.length","0");
shouldBe("Date.prototype.toString.length","0");
shouldBe("Date.prototype.toUTCString.length","0");
shouldBe("Date.prototype.toDateString.length","0");
shouldBe("Date.prototype.toTimeString.length","0");
shouldBe("Date.prototype.toLocaleString.length","0");
shouldBe("Date.prototype.toLocaleDateString.length","0");
shouldBe("Date.prototype.toLocaleTimeString.length","0");
shouldBe("Date.prototype.valueOf.length","0");
shouldBe("Date.prototype.getTime.length","0");
shouldBe("Date.prototype.getFullYear.length","0");
shouldBe("Date.prototype.getUTCFullYear.length","0");
shouldBe("Date.prototype.toGMTString.length","0");
shouldBe("Date.prototype.getMonth.length","0");
shouldBe("Date.prototype.getUTCMonth.length","0");
shouldBe("Date.prototype.getDate.length","0");
shouldBe("Date.prototype.getUTCDate.length","0");
shouldBe("Date.prototype.getDay.length","0");
shouldBe("Date.prototype.getUTCDay.length","0");
shouldBe("Date.prototype.getHours.length","0");
shouldBe("Date.prototype.getUTCHours.length","0");
shouldBe("Date.prototype.getMinutes.length","0");
shouldBe("Date.prototype.getUTCMinutes.length","0");
shouldBe("Date.prototype.getSeconds.length","0");
shouldBe("Date.prototype.getUTCSeconds.length","0");
shouldBe("Date.prototype.getMilliseconds.length","0");
shouldBe("Date.prototype.getUTCMilliseconds.length","0");
shouldBe("Date.prototype.getTimezoneOffset.length","0");
shouldBe("Date.prototype.setTime.length","1");
shouldBe("Date.prototype.setMilliseconds.length","1");
shouldBe("Date.prototype.setUTCMilliseconds.length","1");
shouldBe("Date.prototype.setSeconds.length","2");
shouldBe("Date.prototype.setUTCSeconds.length","2");
shouldBe("Date.prototype.setMinutes.length","3");
shouldBe("Date.prototype.setUTCMinutes.length","3");
shouldBe("Date.prototype.setHours.length","4");
shouldBe("Date.prototype.setUTCHours.length","4");
shouldBe("Date.prototype.setDate.length","1");
shouldBe("Date.prototype.setUTCDate.length","1");
shouldBe("Date.prototype.setMonth.length","2");
shouldBe("Date.prototype.setUTCMonth.length","2");
shouldBe("Date.prototype.setFullYear.length","3");
shouldBe("Date.prototype.setUTCFullYear.length","3");
shouldBe("Date.prototype.setYear.length","1");
shouldBe("Date.prototype.getYear.length","0");
shouldBe("Date.prototype.toGMTString.length","0");
shouldBe("Error.prototype.toString.length","0");
shouldBe("eval.length","1");
shouldBe("parseInt.length","2");
shouldBe("parseFloat.length","1");
shouldBe("isNaN.length","1");
shouldBe("isFinite.length","1");
shouldBe("escape.length","1");
shouldBe("unescape.length","1");
shouldBe("Math.abs.length","1");
shouldBe("Math.acos.length","1");
shouldBe("Math.asin.length","1");
shouldBe("Math.atan.length","1");
shouldBe("Math.atan2.length","2");
shouldBe("Math.ceil.length","1");
shouldBe("Math.cos.length","1");
shouldBe("Math.exp.length","1");
shouldBe("Math.floor.length","1");
shouldBe("Math.log.length","1");
shouldBe("Math.max.length","2");
shouldBe("Math.min.length","2");
shouldBe("Math.pow.length","2");
shouldBe("Math.random.length","0");
shouldBe("Math.round.length","1");
shouldBe("Math.sin.length","1");
shouldBe("Math.sqrt.length","1");
shouldBe("Math.tan.length","1");
shouldBe("Object.prototype.toString.length","0");
shouldBe("Object.prototype.valueOf.length","0");
shouldBe("RegExp.prototype.exec.length","0");
shouldBe("RegExp.prototype.test.length","0");
shouldBe("RegExp.prototype.toString.length","0");
shouldBe("String.fromCharCode.length","1");
shouldBe("String.prototype.toString.length","0");
shouldBe("String.prototype.valueOf.length","0");
shouldBe("String.prototype.charAt.length","1");
shouldBe("String.prototype.charCodeAt.length","1");
shouldBe("String.prototype.indexOf.length","1");
shouldBe("String.prototype.lastIndexOf.length","1");
shouldBe("String.prototype.match.length","1");
shouldBe("String.prototype.replace.length","2");
shouldBe("String.prototype.search.length","1");
shouldBe("String.prototype.slice.length","2"); // 15.5.4.13
shouldBe("String.prototype.split.length","2"); // 15.5.4.14
shouldBe("String.prototype.substr.length","2");
shouldBe("String.prototype.substring.length","2");
shouldBe("String.prototype.toLowerCase.length","0");
shouldBe("String.prototype.toUpperCase.length","0");
shouldBe("String.prototype.big.length","0");
shouldBe("String.prototype.small.length","0");
shouldBe("String.prototype.blink.length","0");
shouldBe("String.prototype.bold.length","0");
shouldBe("String.prototype.fixed.length","0");
shouldBe("String.prototype.italics.length","0");
shouldBe("String.prototype.strike.length","0");
shouldBe("String.prototype.sub.length","0");
shouldBe("String.prototype.sup.length","0");
shouldBe("String.prototype.fontcolor.length","1");
shouldBe("String.prototype.fontsize.length","1");
shouldBe("String.prototype.anchor.length","1");
shouldBe("String.prototype.link.length","1");
shouldBe("Number.prototype.toString.length", "1");
shouldBe("Number.prototype.valueOf.length", "0");
shouldBe("Number.prototype.toFixed.length", "1");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/garbage-n.js
Index: garbage-n.js
===================================================================
invalid code
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/inbuilt_function_proto.js
Index: inbuilt_function_proto.js
===================================================================
shouldBe("Object.prototype.toString.__proto__","Function.prototype");
shouldBe("Object.prototype.valueOf.__proto__","Function.prototype");
shouldBe("Array.prototype.toString.__proto__","Function.prototype");
shouldBe("Array.prototype.toLocaleString.__proto__","Function.prototype");
shouldBe("Array.prototype.concat.__proto__","Function.prototype");
shouldBe("Array.prototype.join.__proto__","Function.prototype");
shouldBe("Array.prototype.pop.__proto__","Function.prototype");
shouldBe("Array.prototype.push.__proto__","Function.prototype");
shouldBe("Array.prototype.reverse.__proto__","Function.prototype");
shouldBe("Array.prototype.shift.__proto__","Function.prototype");
shouldBe("Array.prototype.slice.__proto__","Function.prototype");
shouldBe("Array.prototype.sort.__proto__","Function.prototype");
shouldBe("Array.prototype.splice.__proto__","Function.prototype");
shouldBe("Array.prototype.unshift.__proto__","Function.prototype");
shouldBe("String.prototype.toString.__proto__","Function.prototype");
shouldBe("String.prototype.valueOf.__proto__","Function.prototype");
shouldBe("String.prototype.charAt.__proto__","Function.prototype");
shouldBe("String.prototype.charCodeAt.__proto__","Function.prototype");
shouldBe("String.prototype.indexOf.__proto__","Function.prototype");
shouldBe("String.prototype.lastIndexOf.__proto__","Function.prototype");
shouldBe("String.prototype.match.__proto__","Function.prototype");
shouldBe("String.prototype.replace.__proto__","Function.prototype");
shouldBe("String.prototype.search.__proto__","Function.prototype");
shouldBe("String.prototype.slice.__proto__","Function.prototype");
shouldBe("String.prototype.split.__proto__","Function.prototype");
shouldBe("String.prototype.substr.__proto__","Function.prototype");
shouldBe("String.prototype.substring.__proto__","Function.prototype");
shouldBe("String.prototype.toLowerCase.__proto__","Function.prototype");
shouldBe("String.prototype.toUpperCase.__proto__","Function.prototype");
shouldBe("String.prototype.big.__proto__","Function.prototype");
shouldBe("String.prototype.small.__proto__","Function.prototype");
shouldBe("String.prototype.blink.__proto__","Function.prototype");
shouldBe("String.prototype.bold.__proto__","Function.prototype");
shouldBe("String.prototype.fixed.__proto__","Function.prototype");
shouldBe("String.prototype.italics.__proto__","Function.prototype");
shouldBe("String.prototype.strike.__proto__","Function.prototype");
shouldBe("String.prototype.sub.__proto__","Function.prototype");
shouldBe("String.prototype.sup.__proto__","Function.prototype");
shouldBe("String.prototype.fontcolor.__proto__","Function.prototype");
shouldBe("String.prototype.fontsize.__proto__","Function.prototype");
shouldBe("String.prototype.anchor.__proto__","Function.prototype");
shouldBe("String.prototype.link.__proto__","Function.prototype");
shouldBe("Boolean.prototype.toString.__proto__","Function.prototype");
shouldBe("Boolean.prototype.valueOf.__proto__","Function.prototype");
shouldBe("Date.prototype.toString.__proto__","Function.prototype");
shouldBe("Date.prototype.toUTCString.__proto__","Function.prototype");
shouldBe("Date.prototype.toDateString.__proto__","Function.prototype");
shouldBe("Date.prototype.toTimeString.__proto__","Function.prototype");
shouldBe("Date.prototype.toLocaleString.__proto__","Function.prototype");
shouldBe("Date.prototype.toLocaleDateString.__proto__","Function.prototype");
shouldBe("Date.prototype.toLocaleTimeString.__proto__","Function.prototype");
shouldBe("Date.prototype.valueOf.__proto__","Function.prototype");
shouldBe("Date.prototype.getTime.__proto__","Function.prototype");
shouldBe("Date.prototype.getFullYear.__proto__","Function.prototype");
shouldBe("Date.prototype.getUTCFullYear.__proto__","Function.prototype");
shouldBe("Date.prototype.toGMTString.__proto__","Function.prototype");
shouldBe("Date.prototype.getMonth.__proto__","Function.prototype");
shouldBe("Date.prototype.getUTCMonth.__proto__","Function.prototype");
shouldBe("Date.prototype.getDate.__proto__","Function.prototype");
shouldBe("Date.prototype.getUTCDate.__proto__","Function.prototype");
shouldBe("Date.prototype.getDay.__proto__","Function.prototype");
shouldBe("Date.prototype.getUTCDay.__proto__","Function.prototype");
shouldBe("Date.prototype.getHours.__proto__","Function.prototype");
shouldBe("Date.prototype.getUTCHours.__proto__","Function.prototype");
shouldBe("Date.prototype.getMinutes.__proto__","Function.prototype");
shouldBe("Date.prototype.getUTCMinutes.__proto__","Function.prototype");
shouldBe("Date.prototype.getSeconds.__proto__","Function.prototype");
shouldBe("Date.prototype.getUTCSeconds.__proto__","Function.prototype");
shouldBe("Date.prototype.getMilliseconds.__proto__","Function.prototype");
shouldBe("Date.prototype.getUTCMilliseconds.__proto__","Function.prototype");
shouldBe("Date.prototype.getTimezoneOffset.__proto__","Function.prototype");
shouldBe("Date.prototype.setTime.__proto__","Function.prototype");
shouldBe("Date.prototype.setMilliseconds.__proto__","Function.prototype");
shouldBe("Date.prototype.setUTCMilliseconds.__proto__","Function.prototype");
shouldBe("Date.prototype.setSeconds.__proto__","Function.prototype");
shouldBe("Date.prototype.setUTCSeconds.__proto__","Function.prototype");
shouldBe("Date.prototype.setMinutes.__proto__","Function.prototype");
shouldBe("Date.prototype.setUTCMinutes.__proto__","Function.prototype");
shouldBe("Date.prototype.setHours.__proto__","Function.prototype");
shouldBe("Date.prototype.setUTCHours.__proto__","Function.prototype");
shouldBe("Date.prototype.setDate.__proto__","Function.prototype");
shouldBe("Date.prototype.setUTCDate.__proto__","Function.prototype");
shouldBe("Date.prototype.setMonth.__proto__","Function.prototype");
shouldBe("Date.prototype.setUTCMonth.__proto__","Function.prototype");
shouldBe("Date.prototype.setFullYear.__proto__","Function.prototype");
shouldBe("Date.prototype.setUTCFullYear.__proto__","Function.prototype");
shouldBe("Date.prototype.setYear.__proto__","Function.prototype");
shouldBe("Date.prototype.getYear.__proto__","Function.prototype");
shouldBe("Date.prototype.toGMTString.__proto__","Function.prototype");
shouldBe("RegExp.prototype.exec.__proto__","Function.prototype");
shouldBe("RegExp.prototype.test.__proto__","Function.prototype");
shouldBe("RegExp.prototype.toString.__proto__","Function.prototype");
shouldBe("Error.prototype.toString.__proto__","Function.prototype");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/inbuilt_function_tostring.js
Index: inbuilt_function_tostring.js
===================================================================
function StripSpaces( s ) {
for ( var currentChar = 0, strippedString="";
currentChar < s.length; currentChar++ )
{
if (!IsWhiteSpace(s.charAt(currentChar))) {
strippedString += s.charAt(currentChar);
}
}
return strippedString;
}
function IsWhiteSpace( string ) {
var cc = string.charCodeAt(0);
switch (cc) {
case (0x0009):
case (0x000B):
case (0x000C):
case (0x0020):
case (0x000A):
case (0x000D):
case ( 59 ): // let's strip out semicolons, too
return true;
break;
default:
return false;
}
}
shouldBe("StripSpaces(eval.toString())","\"functioneval(){[nativecode]}\"");
shouldBe("StripSpaces(parseInt.toString())","\"functionparseInt(){[nativecode]}\"");
shouldBe("StripSpaces(parseFloat.toString())","\"functionparseFloat(){[nativecode]}\"");
shouldBe("StripSpaces(isNaN.toString())","\"functionisNaN(){[nativecode]}\"");
shouldBe("StripSpaces(isFinite.toString())","\"functionisFinite(){[nativecode]}\"");
shouldBe("StripSpaces(escape.toString())","\"functionescape(){[nativecode]}\"");
shouldBe("StripSpaces(unescape.toString())","\"functionunescape(){[nativecode]}\"");
shouldBe("StripSpaces(kjsprint.toString())","\"functionkjsprint(){[nativecode]}\"");
shouldBe("StripSpaces(Object.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
shouldBe("StripSpaces(Object.prototype.toLocaleString.toString())","\"functiontoLocaleString(){[nativecode]}\"");
shouldBe("StripSpaces(Object.prototype.valueOf.toString())","\"functionvalueOf(){[nativecode]}\"");
shouldBe("StripSpaces(Object.prototype.hasOwnProperty.toString())","\"functionhasOwnProperty(){[nativecode]}\"");
shouldBe("StripSpaces(Object.prototype.isPrototypeOf.toString())","\"functionisPrototypeOf(){[nativecode]}\"");
shouldBe("StripSpaces(Object.prototype.propertyIsEnumerable.toString())","\"functionpropertyIsEnumerable(){[nativecode]}\"");
shouldBe("StripSpaces(Function.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
shouldBe("StripSpaces(Function.prototype.apply.toString())","\"functionapply(){[nativecode]}\"");
shouldBe("StripSpaces(Function.prototype.call.toString())","\"functioncall(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.toLocaleString.toString())","\"functiontoLocaleString(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.concat.toString())","\"functionconcat(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.join.toString())","\"functionjoin(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.pop.toString())","\"functionpop(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.push.toString())","\"functionpush(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.reverse.toString())","\"functionreverse(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.shift.toString())","\"functionshift(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.slice.toString())","\"functionslice(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.sort.toString())","\"functionsort(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.splice.toString())","\"functionsplice(){[nativecode]}\"");
shouldBe("StripSpaces(Array.prototype.unshift.toString())","\"functionunshift(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.valueOf.toString())","\"functionvalueOf(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.charAt.toString())","\"functioncharAt(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.charCodeAt.toString())","\"functioncharCodeAt(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.concat.toString())","\"functionconcat(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.indexOf.toString())","\"functionindexOf(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.lastIndexOf.toString())","\"functionlastIndexOf(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.match.toString())","\"functionmatch(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.replace.toString())","\"functionreplace(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.search.toString())","\"functionsearch(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.slice.toString())","\"functionslice(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.split.toString())","\"functionsplit(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.substr.toString())","\"functionsubstr(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.substring.toString())","\"functionsubstring(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.toLowerCase.toString())","\"functiontoLowerCase(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.toUpperCase.toString())","\"functiontoUpperCase(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.big.toString())","\"functionbig(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.small.toString())","\"functionsmall(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.blink.toString())","\"functionblink(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.bold.toString())","\"functionbold(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.fixed.toString())","\"functionfixed(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.italics.toString())","\"functionitalics(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.strike.toString())","\"functionstrike(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.sub.toString())","\"functionsub(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.sup.toString())","\"functionsup(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.fontcolor.toString())","\"functionfontcolor(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.fontsize.toString())","\"functionfontsize(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.anchor.toString())","\"functionanchor(){[nativecode]}\"");
shouldBe("StripSpaces(String.prototype.link.toString())","\"functionlink(){[nativecode]}\"");
shouldBe("StripSpaces(Boolean.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
shouldBe("StripSpaces(Boolean.prototype.valueOf.toString())","\"functionvalueOf(){[nativecode]}\"");
shouldBe("StripSpaces(Number.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
shouldBe("StripSpaces(Number.prototype.toLocaleString.toString())","\"functiontoLocaleString(){[nativecode]}\"");
shouldBe("StripSpaces(Number.prototype.valueOf.toString())","\"functionvalueOf(){[nativecode]}\"");
shouldBe("StripSpaces(Number.prototype.toFixed.toString())","\"functiontoFixed(){[nativecode]}\"");
shouldBe("StripSpaces(Number.prototype.toExponential.toString())","\"functiontoExponential(){[nativecode]}\"");
shouldBe("StripSpaces(Number.prototype.toPrecision.toString())","\"functiontoPrecision(){[nativecode]}\"");
shouldBe("StripSpaces(Math.abs.toString())","\"functionabs(){[nativecode]}\"");
shouldBe("StripSpaces(Math.acos.toString())","\"functionacos(){[nativecode]}\"");
shouldBe("StripSpaces(Math.asin.toString())","\"functionasin(){[nativecode]}\"");
shouldBe("StripSpaces(Math.atan.toString())","\"functionatan(){[nativecode]}\"");
shouldBe("StripSpaces(Math.atan2.toString())","\"functionatan2(){[nativecode]}\"");
shouldBe("StripSpaces(Math.ceil.toString())","\"functionceil(){[nativecode]}\"");
shouldBe("StripSpaces(Math.cos.toString())","\"functioncos(){[nativecode]}\"");
shouldBe("StripSpaces(Math.exp.toString())","\"functionexp(){[nativecode]}\"");
shouldBe("StripSpaces(Math.floor.toString())","\"functionfloor(){[nativecode]}\"");
shouldBe("StripSpaces(Math.log.toString())","\"functionlog(){[nativecode]}\"");
shouldBe("StripSpaces(Math.max.toString())","\"functionmax(){[nativecode]}\"");
shouldBe("StripSpaces(Math.min.toString())","\"functionmin(){[nativecode]}\"");
shouldBe("StripSpaces(Math.pow.toString())","\"functionpow(){[nativecode]}\"");
shouldBe("StripSpaces(Math.random.toString())","\"functionrandom(){[nativecode]}\"");
shouldBe("StripSpaces(Math.round.toString())","\"functionround(){[nativecode]}\"");
shouldBe("StripSpaces(Math.sin.toString())","\"functionsin(){[nativecode]}\"");
shouldBe("StripSpaces(Math.sqrt.toString())","\"functionsqrt(){[nativecode]}\"");
shouldBe("StripSpaces(Math.tan.toString())","\"functiontan(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toUTCString.toString())","\"functiontoUTCString(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toDateString.toString())","\"functiontoDateString(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toTimeString.toString())","\"functiontoTimeString(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toLocaleString.toString())","\"functiontoLocaleString(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toLocaleDateString.toString())","\"functiontoLocaleDateString(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toLocaleTimeString.toString())","\"functiontoLocaleTimeString(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.valueOf.toString())","\"functionvalueOf(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getTime.toString())","\"functiongetTime(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getFullYear.toString())","\"functiongetFullYear(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getUTCFullYear.toString())","\"functiongetUTCFullYear(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toGMTString.toString())","\"functiontoGMTString(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getMonth.toString())","\"functiongetMonth(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getUTCMonth.toString())","\"functiongetUTCMonth(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getDate.toString())","\"functiongetDate(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getUTCDate.toString())","\"functiongetUTCDate(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getDay.toString())","\"functiongetDay(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getUTCDay.toString())","\"functiongetUTCDay(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getHours.toString())","\"functiongetHours(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getUTCHours.toString())","\"functiongetUTCHours(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getMinutes.toString())","\"functiongetMinutes(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getUTCMinutes.toString())","\"functiongetUTCMinutes(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getSeconds.toString())","\"functiongetSeconds(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getUTCSeconds.toString())","\"functiongetUTCSeconds(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getMilliseconds.toString())","\"functiongetMilliseconds(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getUTCMilliseconds.toString())","\"functiongetUTCMilliseconds(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getTimezoneOffset.toString())","\"functiongetTimezoneOffset(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setTime.toString())","\"functionsetTime(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setMilliseconds.toString())","\"functionsetMilliseconds(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setUTCMilliseconds.toString())","\"functionsetUTCMilliseconds(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setSeconds.toString())","\"functionsetSeconds(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setUTCSeconds.toString())","\"functionsetUTCSeconds(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setMinutes.toString())","\"functionsetMinutes(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setUTCMinutes.toString())","\"functionsetUTCMinutes(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setHours.toString())","\"functionsetHours(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setUTCHours.toString())","\"functionsetUTCHours(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setDate.toString())","\"functionsetDate(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setUTCDate.toString())","\"functionsetUTCDate(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setMonth.toString())","\"functionsetMonth(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setUTCMonth.toString())","\"functionsetUTCMonth(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setFullYear.toString())","\"functionsetFullYear(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setUTCFullYear.toString())","\"functionsetUTCFullYear(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.setYear.toString())","\"functionsetYear(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.getYear.toString())","\"functiongetYear(){[nativecode]}\"");
shouldBe("StripSpaces(Date.prototype.toGMTString.toString())","\"functiontoGMTString(){[nativecode]}\"");
shouldBe("StripSpaces(RegExp.prototype.exec.toString())","\"functionexec(){[nativecode]}\"");
shouldBe("StripSpaces(RegExp.prototype.test.toString())","\"functiontest(){[nativecode]}\"");
shouldBe("StripSpaces(RegExp.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
shouldBe("StripSpaces(Error.prototype.toString.toString())","\"functiontoString(){[nativecode]}\"");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/iteration.js
Index: iteration.js
===================================================================
// 12.6.1
var count = 0;
do {
count++;
} while (count < 10);
shouldBe("count", "10");
count = 0;
for (var i = 0; i < 10; i++) {
if (i == 5)
break;
count++;
}
shouldBe("count", "5");
// 12.6.3
count = 0;
for (i = 0; i < 10; i++) {
count++;
}
shouldBe("count", "10");
// 12.6.4
obj = new Object();
obj.a = 11;
obj.b = 22;
properties = "";
for ( prop in obj )
properties += (prop + "=" + obj[prop] + ";");
shouldBe("properties", "'a=11;b=22;'");
// now a test verifying the order. not standardized but common.
obj.y = 33;
obj.x = 44;
properties = "";
for ( prop in obj )
properties += prop;
// shouldBe("properties", "'abyx'");
arr = new Array;
arr[0] = 100;
arr[1] = 101;
list = "";
for ( var j in arr ) {
list += "[" + j + "]=" + arr[j] + ";";
}
shouldBe("list","'[0]=100;[1]=101;'");
list = "";
for (var a = [1,2,3], length = a.length, i = 0; i < length; i++) {
list += a[i];
}
shouldBe("list", "'123'");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/j-comment-3.js
Index: j-comment-3.js
===================================================================
<!-- HTML comment (not ECMA)
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/j-comment-4.js
Index: j-comment-4.js
===================================================================
--> end of HTML comment (not ECMA)
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/literals.js
Index: literals.js
===================================================================
var x = 0;
eval("\u0009 \u000B \u000C \u00A0x = 1;");
shouldBe("x", "1");
// hex (non-normative)
shouldBe("0x0", "0");
shouldBe("0xF", "15");
shouldBe("0xFF", "255");
// octal (non-normative)
shouldBe("01", "1");
shouldBe("010", "8");
shouldBe("09", "9");
shouldBe("019", "19");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/math.js
Index: math.js
===================================================================
var negativeZero = Math.atan2(-1, Infinity); // ### any nicer way?
function isNegativeZero(n)
{
return n == 0 && 1 / n < 0;
}
// self tests
shouldBeTrue("isNegativeZero(negativeZero)");
shouldBeFalse("isNegativeZero(0)");
// Constants
shouldBe("String()+Math.E", "'2.718281828459045'");
shouldBe("String()+Math.LN2", "'0.6931471805599453'");
shouldBe("String()+Math.LN10", "'2.302585092994046'");
shouldBe("String()+Math.LOG2E", "'1.4426950408889634'");
shouldBe("String()+Math.LOG10E", "'0.43429448190325176'");
shouldBe("String()+Math.PI", "'3.141592653589793'");
shouldBe("String()+Math.SQRT1_2", "'0.7071067811865476'");
shouldBe("String()+Math.SQRT2", "'1.4142135623730951'");
shouldBe("String()+Number.NaN", "'NaN'");
shouldBe("String()+Number.NEGATIVE_INFINITY", "'-Infinity'");
shouldBe("String()+Number.POSITIVE_INFINITY", "'Infinity'");
// Functions
shouldBe("Math.abs(-5)", "5");
shouldBe("Math.acos(0)", "Math.PI/2");
shouldBe("Math.acos(1)", "0");
shouldBe("Math.ceil(1.1)", "2");
shouldBe("String()+Math.sqrt(2)", "String()+Math.SQRT2");
shouldBe("Math.ceil(1.6)", "2");
shouldBe("Math.round(0)", "0");
shouldBeFalse("isNegativeZero(Math.round(0))");
shouldBeTrue("isNegativeZero(Math.round(negativeZero))");
shouldBe("Math.round(0.2)", "0");
shouldBeTrue("isNegativeZero(Math.round(-0.2))");
shouldBeTrue("isNegativeZero(Math.round(-0.5))");
shouldBe("Math.round(1.1)", "1");
shouldBe("Math.round(1.6)", "2");
shouldBe("Math.round(-3.5)", "-3");
shouldBe("Math.round(-3.6)", "-4");
shouldBeTrue("isNaN(Math.round())");
shouldBeTrue("isNaN(Math.round(NaN))");
shouldBe("Math.round(-Infinity)", "-Infinity");
shouldBe("Math.round(Infinity)", "Infinity");
shouldBe("Math.round(99999999999999999999.99)", "100000000000000000000");
shouldBe("Math.round(-99999999999999999999.99)", "-100000000000000000000");
// Math.log()
shouldBe("Math.log(Math.E*Math.E)", "2");
shouldBeTrue("isNaN(Math.log(NaN))");
shouldBeTrue("isNaN(Math.log(-1))");
shouldBeFalse("isFinite(Math.log(0))");
shouldBe("Math.log(1)", "0");
shouldBeFalse("isFinite(Math.log(Infinity))");
// Math.min()
shouldBeTrue("isNegativeZero(Math.min(negativeZero, 0))");
// Math.max()
shouldBeFalse("isFinite(Math.max())");
shouldBe("Math.max(1)", "1"); // NS 4.x and IE 5.x seem to know about 2 arg version only
shouldBe("Math.max(1, 2, 3)", "3"); // NS 4.x and IE 5.x seem to know about 2 arg version only
shouldBeTrue("isNaN(Math.max(1,NaN,3))");
shouldBeTrue("!isNegativeZero(Math.max(negativeZero, 0))");
list=""
for ( var i in Math ) { list += i + ','; }
shouldBe("list","''");
var my = new Object;
my.v = 1;
// Deleting/assigning
shouldBe("delete my.v", "true")
shouldBeUndefined("my.v");
shouldBe("delete Math.PI", "false")
function myfunc( num ) { return num+1; }
shouldBe("my = myfunc, myfunc(4)", "5");
// Conversions
shouldBe("Boolean(Math)", "true");
shouldBeTrue("isNaN(Number(Math));");
// Unicity
shouldBe("Math.abs===Math.abs", "true")
shouldBe("Math.abs===Math.round", "false")
// Iteration
obj = new Object;
obj.a = 1;
obj.b = 2;
list=""
for ( var i in obj ) { list += i + ','; }
shouldBe("list","'a,b,'");
// (check that Math's properties and functions are not enumerable)
list=""
for ( var i in Math ) { list += i + ','; }
shouldBe("list","''");
Math.myprop=true; // adding a custom property to the math object (why not?)
list=""
for ( var i in Math ) { list += i + ','; }
shouldBe("list","'myprop,'");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/md5-1.js
Index: md5-1.js
===================================================================
// shouldBe() (base.js) test at very end of this file (Harri)
/*
* md5.jvs 1.0b 27/06/96
*
* Javascript implementation of the RSA Data Security, Inc. MD5
* Message-Digest Algorithm.
*
* Copyright (c) 1996 Henri Torgemane. All Rights Reserved.
*
* Permission to use, copy, modify, and distribute this software
* and its documentation for any purposes and without
* fee is hereby granted provided that this copyright notice
* appears in all copies.
*
* Of course, this soft is provided "as is" without express or implied
* warranty of any kind.
*/
// $Id: md5-1.js,v 1.1 2005/12/26 23:07:30 mjs Exp $
function array(n) {
for(i=0;i<n;i++) this[i]=0;
this.length=n;
}
/* Some basic logical functions had to be rewritten because of a bug in
* Javascript.. Just try to compute 0xffffffff >> 4 with it..
* Of course, these functions are slower than the original would be, but
* at least, they work!
*/
function integer(n) { return n%(0xffffffff+1); }
function shr(a,b) {
a=integer(a);
b=integer(b);
if (a-0x80000000>=0) {
a=a%0x80000000;
a>>=b;
a+=0x40000000>>(b-1);
} else
a>>=b;
return a;
}
function shl1(a) {
a=a%0x80000000;
if (a&0x40000000==0x40000000)
{
a-=0x40000000;
a*=2;
a+=0x80000000;
} else
a*=2;
return a;
}
function shl(a,b) {
a=integer(a);
b=integer(b);
for (var i=0;i<b;i++) a=shl1(a);
return a;
}
function and(a,b) {
a=integer(a);
b=integer(b);
var t1=(a-0x80000000);
var t2=(b-0x80000000);
if (t1>=0)
if (t2>=0)
return ((t1&t2)+0x80000000);
else
return (t1&b);
else
if (t2>=0)
return (a&t2);
else
return (a&b);
}
function or(a,b) {
a=integer(a);
b=integer(b);
var t1=(a-0x80000000);
var t2=(b-0x80000000);
if (t1>=0)
if (t2>=0)
return ((t1|t2)+0x80000000);
else
return ((t1|b)+0x80000000);
else
if (t2>=0)
return ((a|t2)+0x80000000);
else
return (a|b);
}
function xor(a,b) {
a=integer(a);
b=integer(b);
var t1=(a-0x80000000);
var t2=(b-0x80000000);
if (t1>=0)
if (t2>=0)
return (t1^t2);
else
return ((t1^b)+0x80000000);
else
if (t2>=0)
return ((a^t2)+0x80000000);
else
return (a^b);
}
function not(a) {
a=integer(a);
return (0xffffffff-a);
}
/* Here begin the real algorithm */
var state = new array(4);
var count = new array(2);
count[0] = 0;
count[1] = 0;
var buffer = new array(64);
var transformBuffer = new array(16);
var digestBits = new array(16);
var S11 = 7;
var S12 = 12;
var S13 = 17;
var S14 = 22;
var S21 = 5;
var S22 = 9;
var S23 = 14;
var S24 = 20;
var S31 = 4;
var S32 = 11;
var S33 = 16;
var S34 = 23;
var S41 = 6;
var S42 = 10;
var S43 = 15;
var S44 = 21;
function F(x,y,z) {
return or(and(x,y),and(not(x),z));
}
function G(x,y,z) {
return or(and(x,z),and(y,not(z)));
}
function H(x,y,z) {
return xor(xor(x,y),z);
}
function I(x,y,z) {
return xor(y ,or(x , not(z)));
}
function rotateLeft(a,n) {
return or(shl(a, n),(shr(a,(32 - n))));
}
function FF(a,b,c,d,x,s,ac) {
a = a+F(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}
function GG(a,b,c,d,x,s,ac) {
a = a+G(b, c, d) +x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}
function HH(a,b,c,d,x,s,ac) {
a = a+H(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}
function II(a,b,c,d,x,s,ac) {
a = a+I(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}
function transform(buf,offset) {
var a=0, b=0, c=0, d=0;
var x = transformBuffer;
a = state[0];
b = state[1];
c = state[2];
d = state[3];
for (i = 0; i < 16; i++) {
x[i] = and(buf[i*4+offset],0xff);
for (j = 1; j < 4; j++) {
x[i]+=shl(and(buf[i*4+j+offset] ,0xff), j * 8);
}
}
/* Round 1 */
a = FF ( a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
d = FF ( d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
c = FF ( c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
b = FF ( b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
a = FF ( a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
d = FF ( d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
c = FF ( c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
b = FF ( b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
a = FF ( a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
d = FF ( d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
c = FF ( c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
b = FF ( b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
a = FF ( a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
d = FF ( d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
c = FF ( c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
b = FF ( b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
/* Round 2 */
a = GG ( a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
d = GG ( d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
c = GG ( c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
b = GG ( b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
a = GG ( a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
d = GG ( d, a, b, c, x[10], S22, 0x2441453); /* 22 */
c = GG ( c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
b = GG ( b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
a = GG ( a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
d = GG ( d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
c = GG ( c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
b = GG ( b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
a = GG ( a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
d = GG ( d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
c = GG ( c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
b = GG ( b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
/* Round 3 */
a = HH ( a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
d = HH ( d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
c = HH ( c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
b = HH ( b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
a = HH ( a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
d = HH ( d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
c = HH ( c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
b = HH ( b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
a = HH ( a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
d = HH ( d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
c = HH ( c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
b = HH ( b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
a = HH ( a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
d = HH ( d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
c = HH ( c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
b = HH ( b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
/* Round 4 */
a = II ( a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
d = II ( d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
c = II ( c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
b = II ( b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
a = II ( a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
d = II ( d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
c = II ( c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
b = II ( b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
a = II ( a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
d = II ( d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
c = II ( c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
b = II ( b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
a = II ( a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
d = II ( d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
c = II ( c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
b = II ( b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
state[0] +=a;
state[1] +=b;
state[2] +=c;
state[3] +=d;
}
function init() {
count[0]=count[1] = 0;
state[0] = 0x67452301;
state[1] = 0xefcdab89;
state[2] = 0x98badcfe;
state[3] = 0x10325476;
for (i = 0; i < digestBits.length; i++)
digestBits[i] = 0;
}
function update(b) {
var index,i;
index = and(shr(count[0],3) , 0x3f);
if (count[0]<0xffffffff-7)
count[0] += 8;
else {
count[1]++;
count[0]-=0xffffffff+1;
count[0]+=8;
}
buffer[index] = and(b,0xff);
if (index >= 63) {
transform(buffer, 0);
}
}
function finish() {
var bits = new array(8);
var padding;
var i=0, index=0, padLen=0;
for (i = 0; i < 4; i++) {
bits[i] = and(shr(count[0],(i * 8)), 0xff);
}
for (i = 0; i < 4; i++) {
bits[i+4]=and(shr(count[1],(i * 8)), 0xff);
}
index = and(shr(count[0], 3) ,0x3f);
padLen = (index < 56) ? (56 - index) : (120 - index);
padding = new array(64);
padding[0] = 0x80;
for (i=0;i<padLen;i++)
update(padding[i]);
for (i=0;i<8;i++)
update(bits[i]);
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
digestBits[i*4+j] = and(shr(state[i], (j * 8)) , 0xff);
}
}
}
/* End of the MD5 algorithm */
function hexa(n) {
var hexa_h = "0123456789abcdef";
var hexa_c="";
var hexa_m=n;
for (hexa_i=0;hexa_i<8;hexa_i++) {
hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;
hexa_m=Math.floor(hexa_m/16);
}
return hexa_c;
}
var ascii="01234567890123456789012345678901" +
" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+
"[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
function MD5(entree)
{
var l,s,k,ka,kb,kc,kd;
init();
for (k=0;k<entree.length;k++) {
l=entree.charAt(k);
update(ascii.lastIndexOf(l));
}
finish();
ka=kb=kc=kd=0;
for (i=0;i<4;i++) ka+=shl(digestBits[15-i], (i*8));
for (i=4;i<8;i++) kb+=shl(digestBits[15-i], ((i-4)*8));
for (i=8;i<12;i++) kc+=shl(digestBits[15-i], ((i-8)*8));
for (i=12;i<16;i++) kd+=shl(digestBits[15-i], ((i-12)*8));
s=hexa(kd)+hexa(kc)+hexa(kb)+hexa(ka);
return s;
}
shouldBe("MD5('kde')", "'186cf28b76f2264e9fea8fcf91cb4f5d'");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/md5-2.js
Index: md5-2.js
===================================================================
shouldBe("hexMD5('kde')", "'186cf28b76f2264e9fea8fcf91cb4f5d'");
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 1.1 Copyright (C) Paul Johnston 1999 - 2002.
* Code also contributed by Greg Holt
* See http://pajhome.org.uk/site/legal.html for details.
*/
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF)
var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
return (msw << 16) | (lsw & 0xFFFF)
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt))
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function cmn(q, a, b, x, s, t)
{
return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
}
function ff(a, b, c, d, x, s, t)
{
return cmn((b & c) | ((~b) & d), a, b, x, s, t)
}
function gg(a, b, c, d, x, s, t)
{
return cmn((b & d) | (c & (~d)), a, b, x, s, t)
}
function hh(a, b, c, d, x, s, t)
{
return cmn(b ^ c ^ d, a, b, x, s, t)
}
function ii(a, b, c, d, x, s, t)
{
return cmn(c ^ (b | (~d)), a, b, x, s, t)
}
/*
* Calculate the MD5 of an array of little-endian words, producing an array
* of little-endian words.
*/
function coreMD5(x)
{
var a = 1732584193
var b = -271733879
var c = -1732584194
var d = 271733878
for(i = 0; i < x.length; i += 16)
{
var olda = a
var oldb = b
var oldc = c
var oldd = d
a = ff(a, b, c, d, x[i+ 0], 7 , -680876936)
d = ff(d, a, b, c, x[i+ 1], 12, -389564586)
c = ff(c, d, a, b, x[i+ 2], 17, 606105819)
b = ff(b, c, d, a, x[i+ 3], 22, -1044525330)
a = ff(a, b, c, d, x[i+ 4], 7 , -176418897)
d = ff(d, a, b, c, x[i+ 5], 12, 1200080426)
c = ff(c, d, a, b, x[i+ 6], 17, -1473231341)
b = ff(b, c, d, a, x[i+ 7], 22, -45705983)
a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416)
d = ff(d, a, b, c, x[i+ 9], 12, -1958414417)
c = ff(c, d, a, b, x[i+10], 17, -42063)
b = ff(b, c, d, a, x[i+11], 22, -1990404162)
a = ff(a, b, c, d, x[i+12], 7 , 1804603682)
d = ff(d, a, b, c, x[i+13], 12, -40341101)
c = ff(c, d, a, b, x[i+14], 17, -1502002290)
b = ff(b, c, d, a, x[i+15], 22, 1236535329)
a = gg(a, b, c, d, x[i+ 1], 5 , -165796510)
d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632)
c = gg(c, d, a, b, x[i+11], 14, 643717713)
b = gg(b, c, d, a, x[i+ 0], 20, -373897302)
a = gg(a, b, c, d, x[i+ 5], 5 , -701558691)
d = gg(d, a, b, c, x[i+10], 9 , 38016083)
c = gg(c, d, a, b, x[i+15], 14, -660478335)
b = gg(b, c, d, a, x[i+ 4], 20, -405537848)
a = gg(a, b, c, d, x[i+ 9], 5 , 568446438)
d = gg(d, a, b, c, x[i+14], 9 , -1019803690)
c = gg(c, d, a, b, x[i+ 3], 14, -187363961)
b = gg(b, c, d, a, x[i+ 8], 20, 1163531501)
a = gg(a, b, c, d, x[i+13], 5 , -1444681467)
d = gg(d, a, b, c, x[i+ 2], 9 , -51403784)
c = gg(c, d, a, b, x[i+ 7], 14, 1735328473)
b = gg(b, c, d, a, x[i+12], 20, -1926607734)
a = hh(a, b, c, d, x[i+ 5], 4 , -378558)
d = hh(d, a, b, c, x[i+ 8], 11, -2022574463)
c = hh(c, d, a, b, x[i+11], 16, 1839030562)
b = hh(b, c, d, a, x[i+14], 23, -35309556)
a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060)
d = hh(d, a, b, c, x[i+ 4], 11, 1272893353)
c = hh(c, d, a, b, x[i+ 7], 16, -155497632)
b = hh(b, c, d, a, x[i+10], 23, -1094730640)
a = hh(a, b, c, d, x[i+13], 4 , 681279174)
d = hh(d, a, b, c, x[i+ 0], 11, -358537222)
c = hh(c, d, a, b, x[i+ 3], 16, -722521979)
b = hh(b, c, d, a, x[i+ 6], 23, 76029189)
a = hh(a, b, c, d, x[i+ 9], 4 , -640364487)
d = hh(d, a, b, c, x[i+12], 11, -421815835)
c = hh(c, d, a, b, x[i+15], 16, 530742520)
b = hh(b, c, d, a, x[i+ 2], 23, -995338651)
a = ii(a, b, c, d, x[i+ 0], 6 , -198630844)
d = ii(d, a, b, c, x[i+ 7], 10, 1126891415)
c = ii(c, d, a, b, x[i+14], 15, -1416354905)
b = ii(b, c, d, a, x[i+ 5], 21, -57434055)
a = ii(a, b, c, d, x[i+12], 6 , 1700485571)
d = ii(d, a, b, c, x[i+ 3], 10, -1894986606)
c = ii(c, d, a, b, x[i+10], 15, -1051523)
b = ii(b, c, d, a, x[i+ 1], 21, -2054922799)
a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359)
d = ii(d, a, b, c, x[i+15], 10, -30611744)
c = ii(c, d, a, b, x[i+ 6], 15, -1560198380)
b = ii(b, c, d, a, x[i+13], 21, 1309151649)
a = ii(a, b, c, d, x[i+ 4], 6 , -145523070)
d = ii(d, a, b, c, x[i+11], 10, -1120210379)
c = ii(c, d, a, b, x[i+ 2], 15, 718787259)
b = ii(b, c, d, a, x[i+ 9], 21, -343485551)
a = safe_add(a, olda)
b = safe_add(b, oldb)
c = safe_add(c, oldc)
d = safe_add(d, oldd)
}
return [a, b, c, d]
}
/*
* Convert an array of little-endian words to a hex string.
*/
function binl2hex(binarray)
{
var hex_tab = "0123456789abcdef"
var str = ""
for(var i = 0; i < binarray.length * 4; i++)
{
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8)) & 0xF)
}
return str
}
/*
* Convert an array of little-endian words to a base64 encoded string.
*/
function binl2b64(binarray)
{
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
var str = ""
for(var i = 0; i < binarray.length * 32; i += 6)
{
str += tab.charAt(((binarray[i>>5] << (i%32)) & 0x3F) |
((binarray[i>>5+1] >> (32-i%32)) & 0x3F))
}
return str
}
/*
* Convert an 8-bit character string to a sequence of 16-word blocks, stored
* as an array, and append appropriate padding for MD4/5 calculation.
* If any of the characters are >255, the high byte is silently ignored.
*/
function str2binl(str)
{
var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks
var blks = new Array(nblk * 16)
for(var i = 0; i < nblk * 16; i++) blks[i] = 0
for(var i = 0; i < str.length; i++)
blks[i>>2] |= (str.charCodeAt(i) & 0xFF) << ((i%4) * 8)
blks[i>>2] |= 0x80 << ((i%4) * 8)
blks[nblk*16-2] = str.length * 8
return blks
}
/*
* Convert a wide-character string to a sequence of 16-word blocks, stored as
* an array, and append appropriate padding for MD4/5 calculation.
*/
function strw2binl(str)
{
var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks
var blks = new Array(nblk * 16)
for(var i = 0; i < nblk * 16; i++) blks[i] = 0
for(var i = 0; i < str.length; i++)
blks[i>>1] |= str.charCodeAt(i) << ((i%2) * 16)
blks[i>>1] |= 0x80 << ((i%2) * 16)
blks[nblk*16-2] = str.length * 16
return blks
}
/*
* External interface
*/
function hexMD5 (str) { return binl2hex(coreMD5( str2binl(str))) }
function hexMD5w(str) { return binl2hex(coreMD5(strw2binl(str))) }
function b64MD5 (str) { return binl2b64(coreMD5( str2binl(str))) }
function b64MD5w(str) { return binl2b64(coreMD5(strw2binl(str))) }
/* Backward compatibility */
function calcMD5(str) { return binl2hex(coreMD5( str2binl(str))) }
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/object_prototype.js
Index: object_prototype.js
===================================================================
// Object.prototype.hasOwnProperty
function MyClass()
{
this.y = 2;
}
MyClass.prototype = { x : 1 };
var sub = new MyClass();
shouldBe("sub.x","1");
shouldBe("sub.y","2");
shouldBe("sub.hasOwnProperty('x')","false");
shouldBe("sub.hasOwnProperty('y')","true");
sub.x = 6;
shouldBe("sub.x","6");
shouldBe("sub.hasOwnProperty('x')","true");
delete sub.y;
shouldBe("sub.y","undefined");
shouldBe("sub.hasOwnProperty('y')","false");
// Object.prototype.isPrototypeOf
function Class1() {}
function Class2() {}
function Class3() {}
Class1.prototype = new Object();
Class1.prototype.hasClass1 = true;
Class2.prototype = new Class1();
Class2.prototype.hasClass2 = true;
Class3.prototype = new Class2();
Class3.prototype.hasClass3 = true;
var obj = new Class3();
shouldBe("obj.hasClass1","true");
shouldBe("obj.hasClass2","true");
shouldBe("obj.hasClass3","true");
shouldBe("Class1.prototype.isPrototypeOf(obj)","true");
shouldBe("Class2.prototype.isPrototypeOf(obj)","true");
shouldBe("Class3.prototype.isPrototypeOf(obj)","true");
shouldBe("obj.isPrototypeOf(Class1.prototype)","false");
shouldBe("obj.isPrototypeOf(Class2.prototype)","false");
shouldBe("obj.isPrototypeOf(Class3.prototype)","false");
shouldBe("Class1.prototype.isPrototypeOf(Class2.prototype)","true");
shouldBe("Class2.prototype.isPrototypeOf(Class1.prototype)","false");
shouldBe("Class1.prototype.isPrototypeOf(Class3.prototype)","true");
shouldBe("Class3.prototype.isPrototypeOf(Class1.prototype)","false");
shouldBe("Class2.prototype.isPrototypeOf(Class3.prototype)","true");
shouldBe("Class3.prototype.isPrototypeOf(Class2.prototype)","false");
shouldBeUndefined("Class1.prototype.prototype");
function checkEnumerable(obj,property)
{
for (var propname in obj) {
if (propname == property)
return true;
}
return false;
}
function myfunc(a,b,c)
{
}
myfunc.someproperty = 4;
shouldBe("myfunc.length","3");
shouldBe("myfunc.someproperty","4");
shouldBe("myfunc.propertyIsEnumerable('length')","false");
shouldBe("myfunc.propertyIsEnumerable('someproperty')","true");
shouldBe("checkEnumerable(myfunc,'length')","false");
shouldBe("checkEnumerable(myfunc,'someproperty')","true");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/object_prototype_tostring.js
Index: object_prototype_tostring.js
===================================================================
var _array = new Array(1,2,3);
_array.toString = Object.prototype.toString;
shouldBe("_array.toString()","\"[object Array]\"");
var _string = new String("test");
_string.toString = Object.prototype.toString;
shouldBe("_string.toString()","\"[object String]\"");
var _boolean = new Boolean(true);
_boolean.toString = Object.prototype.toString;
shouldBe("_boolean.toString()","\"[object Boolean]\"");
var _number = new Number(4);
_number.toString = Object.prototype.toString;
shouldBe("_number.toString()","\"[object Number]\"");
var _object = new Object();
_object.toString = Object.prototype.toString;
shouldBe("_object.toString()","\"[object Object]\"");
var _date = new Date();
_date.toString = Object.prototype.toString;
shouldBe("_date.toString()","\"[object Date]\"");
var _regexp = new RegExp();
_regexp.toString = Object.prototype.toString;
shouldBe("_regexp.toString()","\"[object RegExp]\"");
var _error = new Error();
_error.toString = Object.prototype.toString;
shouldBe("_error.toString()","\"[object Error]\"");
var _function = new Function();
_function.toString = Object.prototype.toString;
shouldBe("_function.toString()","\"[object Function]\"");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/operators.js
Index: operators.js
===================================================================
// operator !
shouldBeTrue("!undefined");
shouldBeTrue("!null");
shouldBeTrue("!!true");
shouldBeTrue("!false");
shouldBeTrue("!!1");
shouldBeTrue("!0");
shouldBeTrue("!!'a'");
shouldBeTrue("!''");
// increment
shouldBe("var i = 0; ++i;", "1");
shouldBe("var i = 0; ++i; i", "1");
shouldBe("var i = 0; i++;", "0");
shouldBe("var i = 0; i++; i", "1");
shouldBe("var i = true; i++", "1");
shouldBe("var i = true; i++; i", "2");
// decrement
shouldBe("var i = 0; --i;", "-1");
shouldBe("var i = 0; --i; i", "-1");
shouldBe("var i = 0; i--;", "0");
shouldBe("var i = 0; i--; i", "-1");
shouldBe("var i = true; i--", "1");
shouldBe("var i = true; i--; i", "0");
// bitwise operators
shouldBe("~0", "-1");
shouldBe("~1", "-2");
shouldBe("~Math.pow(2, 33)", "-1"); // 32 bit overflow
shouldBe("~(Math.pow(2, 32) + Math.pow(2, 31) + 2)",
"2147483645"); // a signedness issue
shouldBe("~null", "-1");
shouldBe("3 & 1", "1");
shouldBe("2 | true", "3");
shouldBe("'3' ^ 1", "2");
shouldBe("3^4&5", "7");
shouldBe("2|4^5", "3");
shouldBe("1 << 2", "4");
shouldBe("8 >> 1", "4");
shouldBe("1 >> 2", "0");
shouldBe("-8 >> 24", "-1");
shouldBe("8 >>> 2", "2");
shouldBe("-8 >>> 24", "255");
shouldBe("(-2200000000 >> 1) << 1", "2094967296");
// addition
shouldBe("1+2", "3");
shouldBe("'a'+'b'", "'ab'");
shouldBe("'a'+2", "'a2'");
shouldBe("'2'+'-1'", "'2-1'");
shouldBe("true+'a'", "'truea'");
shouldBe("'a' + null", "'anull'");
shouldBe("true+1", "2");
shouldBe("false+null", "0");
// substraction
shouldBe("1-3", "-2");
shouldBe("isNaN('a'-3)", "true");
shouldBe("'3'-'-1'", "4");
shouldBe("'4'-2", "2");
shouldBe("true-false", "1");
shouldBe("false-1", "-1");
shouldBe("null-true", "-1");
// multiplication
shouldBe("2 * 3", "6");
shouldBe("true * 3", "3");
shouldBe("2 * '3'", "6");
// division
shouldBe("6 / 4", "1.5");
//shouldBe("true / false", "Inf");
shouldBe("'6' / '2'", "3");
shouldBeTrue("isNaN('x' / 1)");
shouldBeTrue("isNaN(1 / NaN)");
shouldBeTrue("isNaN(Infinity / Infinity)");
shouldBe("Infinity / 0", "Infinity");
shouldBe("-Infinity / 0", "-Infinity");
shouldBe("Infinity / 1", "Infinity");
shouldBe("-Infinity / 1", "-Infinity");
shouldBeTrue("1 / Infinity == +0");
shouldBeTrue("1 / -Infinity == -0"); // how to check ?
shouldBeTrue("isNaN(0/0)");
shouldBeTrue("0 / 1 === 0");
shouldBeTrue("0 / -1 === -0"); // how to check ?
shouldBe("1 / 0", "Infinity");
shouldBe("-1 / 0", "-Infinity");
// modulo
shouldBe("6 % 4", "2");
shouldBe("'-6' % 4", "-2");
shouldBe("2==2", "true");
shouldBe("1==2", "false");
shouldBe("1<2", "true");
shouldBe("1<=2", "true");
shouldBe("2<1", "false");
shouldBe("2<=1", "false");
shouldBe("2>1", "true");
shouldBe("2>=1", "true");
shouldBe("1>=2", "false");
shouldBe("1>2", "false");
shouldBe("'abc' == 'abc'", "true");
shouldBe("'abc' != 'xyz'", "true");
shouldBeTrue("true == true");
shouldBeTrue("false == false");
shouldBeTrue("true != false");
shouldBeTrue("'a' != null");
shouldBeTrue("'a' != undefined");
shouldBeTrue("null == null");
shouldBeTrue("null == undefined");
shouldBeTrue("undefined == undefined");
shouldBeTrue("NaN != NaN");
shouldBeTrue("true != undefined");
shouldBeTrue("true != null");
shouldBeTrue("false != undefined");
shouldBeTrue("false != null");
shouldBeTrue("'0' == 0");
shouldBeTrue("1 == '1'");
shouldBeTrue("NaN != NaN");
shouldBeTrue("NaN != 0");
shouldBeTrue("NaN != undefined");
shouldBeTrue("true == 1");
shouldBeTrue("true != 2");
shouldBeTrue("1 == true");
shouldBeTrue("false == 0");
shouldBeTrue("0 == false");
shouldBe("'abc' < 'abx'", "true");
shouldBe("'abc' < 'abcd'", "true");
shouldBe("'abc' < 'abc'", "false");
shouldBe("'abcd' < 'abcd'", "false");
shouldBe("'abx' < 'abc'", "false");
shouldBe("'abc' <= 'abc'", "true");
shouldBe("'abc' <= 'abx'", "true");
shouldBe("'abx' <= 'abc'", "false");
shouldBe("'abcd' <= 'abc'", "false");
shouldBe("'abc' <= 'abcd'", "true");
shouldBe("'abc' > 'abx'", "false");
shouldBe("'abc' > 'abc'", "false");
shouldBe("'abcd' > 'abc'", "true");
shouldBe("'abx' > 'abc'", "true");
shouldBe("'abc' > 'abcd'", "false");
shouldBe("'abc' >= 'abc'", "true");
shouldBe("'abcd' >= 'abc'", "true");
shouldBe("'abx' >= 'abc'", "true");
shouldBe("'abc' >= 'abx'", "false");
shouldBe("'abc' >= 'abx'", "false");
shouldBe("'abc' >= 'abcd'", "false");
// mixed strings and numbers - results validated in NS+moz+IE5
shouldBeFalse("'abc' <= 0"); // #35246
shouldBeTrue("'' <= 0");
shouldBeTrue("' ' <= 0");
shouldBeTrue("null <= 0");
shouldBeFalse("0 <= 'abc'");
shouldBeTrue("0 <= ''");
shouldBeTrue("0 <= null");
shouldBeTrue("null <= null");
shouldBeTrue("6 < '52'");
shouldBeTrue("6 < '72'"); // #36087
shouldBe("NaN < 0", "false");
shouldBe("NaN <= 0", "false");
shouldBe("NaN > 0", "false");
shouldBe("NaN >= 0", "false");
// strict comparison ===
shouldBe("0 === false", "false");
//shouldBe("undefined === undefined", "true"); // aborts in IE5 (undefined is not defined ;)
shouldBe("null === null", "true");
shouldBe("NaN === NaN", "false");
shouldBe("0.0 === 0", "true");
shouldBe("'abc' === 'abc'", "true");
shouldBe("'a' === 'x'", "false");
shouldBe("true === true", "true");
shouldBe("false === false", "true");
shouldBe("true === false", "false");
shouldBe("Math === Math", "true");
shouldBe("Math === Boolean", "false");
shouldBe("Infinity === Infinity", "true");
// !==
shouldBe("0 !== 0", "false");
shouldBe("0 !== 1", "true");
shouldBe("typeof undefined", "'undefined'");
shouldBe("typeof null", "'object'");
shouldBe("typeof true", "'boolean'");
shouldBe("typeof false", "'boolean'");
shouldBe("typeof 1", "'number'");
shouldBe("typeof 'a'", "'string'");
shouldBe("typeof shouldBe", "'function'");
shouldBe("typeof Number.NaN", "'number'");
shouldBe("11 && 22", "22");
shouldBe("null && true", "null");
shouldBe("11 || 22", "11");
shouldBe("null || 'a'", "'a'");
shouldBeUndefined("void 1");
shouldBeTrue("1 in [1, 2]");
shouldBeFalse("3 in [1, 2]");
shouldBeTrue("'a' in { a:1, b:2 }");
// instanceof
// Those 2 lines don't parse in Netscape...
shouldBe("(new Boolean()) instanceof Boolean", "true");
shouldBe("(new Boolean()) instanceof Number", "false");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/parse.js
Index: parse.js
===================================================================
function test() { return;}
function test() { while(0) break; }
function test() { while(0) continue; }
function test() { return lab;}
function test() { while(0) break lab; }
function test() { while(0) continue lab; }
function test() { return }
function test() { while(0) break }
function test() { while(0) continue }
function test() { return 0 }
function test() { while(0) break lab }
function test() { while(0) continue lab }
lab:
a = 1
b = 123 // comment
c = 2
c = 3 /* comment */
d = 4
// non-ascii identifier letters (not working copy of Mozilla?!)
var ident = "";
ident += "\u00E9"; // LATIN SMALL LETTER E WITH ACUTE
ident += "\u0100"; // LATIN CAPITAL LETTER A WITH MACRON
ident += "\u02af"; // LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
ident += "\u0388"; // GREEK CAPITAL LETTER EPSILON WITH TONOS
ident += "\u18A8"; // MONGOLIAN LETTER MANCHU ALI GALI BHA
var code = "var " + ident + " = 11; " + ident + ";";
var res = eval(code);
shouldBe("res", "11");
// invalid identifier letter
var caught = false;
try {
eval("var f\xf7;"); //
} catch (e) {
caught = true;
}
shouldBeTrue("caught");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/prototype_length.js
Index: prototype_length.js
===================================================================
shouldBe("Object.prototype.length","undefined");
shouldBe("Function.prototype.length","0");
shouldBe("Array.prototype.length","0");
shouldBe("String.prototype.length","0");
shouldBe("Boolean.prototype.length","undefined");
shouldBe("Number.prototype.length","undefined");
shouldBe("Date.prototype.length","undefined");
shouldBe("RegExp.prototype.length","undefined");
shouldBe("Error.prototype.length","undefined");
// check !ReadOnly
Array.prototype.length = 6;
shouldBe("Array.prototype.length","6");
// check ReadOnly
Function.prototype.length = 7;
shouldBe("Function.prototype.length","0");
String.prototype.length = 8;
shouldBe("String.prototype.length","0");
// check DontDelete
shouldBe("delete Array.prototype.length","false");
shouldBe("delete Function.prototype.length","false");
shouldBe("delete String.prototype.length","false");
// check DontEnum
var foundArrayPrototypeLength = false;
for (i in Array.prototype) { if (i == "length") foundArrayPrototypeLength = true; }
shouldBe("foundArrayPrototypeLength","false");
var foundFunctionPrototypeLength = false;
for (i in Function.prototype) { if (i == "length") foundFunctionPrototypeLength = true; }
shouldBe("foundFunctionPrototypeLength","false");
var foundStringPrototypeLength = false;
for (i in String.prototype) { if (i == "length") foundStringPrototypeLength = true; }
shouldBe("foundStringPrototypeLength","false");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/prototype_proto.js
Index: prototype_proto.js
===================================================================
shouldBe("Object.prototype.__proto__ == Object.prototype","false");
shouldBe("Function.prototype.__proto__","Object.prototype");
shouldBe("Array.prototype.__proto__","Object.prototype");
shouldBe("String.prototype.__proto__","Object.prototype");
shouldBe("Boolean.prototype.__proto__","Object.prototype");
shouldBe("Number.prototype.__proto__","Object.prototype");
shouldBe("Date.prototype.__proto__","Object.prototype");
shouldBe("RegExp.prototype.__proto__","Object.prototype");
shouldBe("Error.prototype.__proto__","Object.prototype");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/scope.js
Index: scope.js
===================================================================
var b = new Boolean();
b.x = 11;
with (b) {
f = function(a) { return a*x; } // remember scope chain
}
shouldBe("f(2)", "22");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/shell.js
Index: shell.js
===================================================================
// Utility functions for JS test suite
// (c) 2001 Harri Porten <porten at kde.org>
function testPassed(msg)
{
debug("PASS. " + msg);
}
function testFailed(msg)
{
debug("FAIL. " + msg);
regtest.reportResult(false, msg);
}
function shouldBe(_a, _b)
{
if (typeof _a != "string" || typeof _b != "string")
debug("WARN: shouldBe() expects string arguments");
var _av = eval(_a);
var _bv = eval(_b);
if (_av === _bv)
testPassed(_a + " is " + _b);
else
testFailed(_a + " should be " + _bv + ". Was " + _av);
}
function shouldBeTrue(_a) { shouldBe(_a, "true"); }
function shouldBeFalse(_a) { shouldBe(_a, "false"); }
function shouldBeUndefined(_a)
{
var _av = eval(_a);
if (typeof _av == "undefined")
testPassed(_a + " is undefined.");
else
testFailed(_a + " should be undefined. Was " + _av);
}
1.1 LayoutTests/fast/js/kde/resources/statements.js
Index: statements.js
===================================================================
function testSwitch(v) {
var result = "";
switch (v) {
case 0:
result += 'a';
case 1:
result += 'b';
case 1:
result += 'c';
case 2:
result += 'd';
break;
}
return result;
}
shouldBe("testSwitch(0)", "'abcd'");
shouldBe("testSwitch(1)", "'bcd'"); // IE agrees, NS disagrees
shouldBe("testSwitch(2)", "'d'");
shouldBe("testSwitch(false)", "''");
function testSwitch2(v) {
var result = "";
switch (v) {
case 1:
result += 'a';
break;
case 2:
result += 'b';
break;
default:
result += 'c';
case 3:
result += 'd';
break;
}
return result;
}
shouldBe("testSwitch2(1)", "'a'");
shouldBe("testSwitch2(2)", "'b'");
shouldBe("testSwitch2(3)", "'d'");
shouldBe("testSwitch2(-1)", "'cd'");
shouldBe("testSwitch2('x')", "'cd'");
function testSwitch3(v) {
var result = "";
switch (v) {
default:
result += 'c';
case 3:
result += 'd';
case 4:
result += 'e';
break;
}
return result;
};
shouldBe("testSwitch3(0)", "'cde'");
shouldBe("testSwitch3(3)", "'de'");
shouldBe("testSwitch3(4)", "'e'");
function testSwitch4(v) {
var result = "";
switch (v) {
case 0:
result += 'a';
result += 'b';
break;
}
return result;
};
shouldBe("testSwitch4(0)", "'ab'");
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/string-1-n.js
Index: string-1-n.js
===================================================================
"unterminated string
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/string-2-n.js
Index: string-2-n.js
===================================================================
"broken
string"
successfullyParsed = true
1.1 LayoutTests/fast/js/kde/resources/var_decl_init.js
Index: var_decl_init.js
===================================================================
var myvar = 1;
function varInFunction() {
return (myvar == undefined);
var myvar = 2;
}
function varInVarList() {
return (myvar == undefined);
var a = 1, b = 0, myvar = 2;
}
function varListOrder() {
var tmp = 0;
var i = ++tmp, j = ++tmp;
return j == 2;
}
function varInBlock() {
return (myvar == undefined);
{
var myvar = 2;
}
}
function varInIf() {
return (myvar == undefined);
if (false)
var myvar = 2;
}
function varInElse() {
return (myvar == undefined);
if (true) {
}
else
var myvar = 2;
}
function varInDoWhile() {
return (myvar == undefined);
do
var myvar = 2;
while (false);
}
function varInWhile() {
return (myvar == undefined);
while (false)
var myvar = 2;
}
function varInFor() {
return (myvar == undefined);
var i;
for (i = 0; i < 0; i++)
var myvar = 2;
}
function varInForInitExpr() {
return (myvar == undefined);
for (var myvar = 2; i < 2; i++) {
}
}
function varInForIn() {
return (myvar == undefined);
var o = new Object();
var i;
for (i in o)
var myvar = 2;
}
function varInWith() {
return (myvar == undefined);
with (String)
var myvar = 2;
}
function varInCase() {
return (myvar == undefined);
switch (1) {
case 0:
var myvar = 2;
case 1:
}
}
function varInLabel() {
return (myvar == undefined);
label1:
var myvar = 2;
}
function varInCatch() {
return (myvar == undefined);
try {
}
catch (e) {
var myvar = 2;
}
}
function varInFinally() {
return (myvar == undefined);
try {
}
finally {
var myvar = 2;
}
}
function varInTry() {
return (myvar == undefined);
try {
var myvar = 2;
}
catch (e) {
}
finally {
}
}
function varInSubFunction() {
return (myvar == 1);
function subfunction() {
var myvar = 2;
}
}
if (!varGlobal)
var varGlobal = 1;
shouldBe("varInFunction()","true");
shouldBe("varInVarList()","true");
shouldBe("varListOrder()","true");
shouldBe("varInBlock()","true");
shouldBe("varInIf()","true");
shouldBe("varInElse()","true");
shouldBe("varInDoWhile()","true");
shouldBe("varInWhile()","true");
shouldBe("varInFor()","true");
shouldBe("varInForIn()","true");
shouldBe("varInWith()","true");
shouldBe("varInCase()","true");
shouldBe("varInLabel()","true");
shouldBe("varInCatch()","true");
shouldBe("varInFinally()","true");
shouldBe("varInTry()","true");
shouldBe("varInForInitExpr()","true");
shouldBe("varInSubFunction()","true");
shouldBe("varGlobal", "1");
var overrideVar = 1;
var overrideVar;
shouldBe("overrideVar", "1");
var overrideVar2 = 1;
var overrideVar2 = 2;
shouldBe("overrideVar2", "2");
successfullyParsed = true
More information about the webkit-changes
mailing list