Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F881326
lang.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
lang.js
View Options
if
(
!
dojo
.
_hasResource
[
"tests._base.lang"
]){
//_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo
.
_hasResource
[
"tests._base.lang"
]
=
true
;
dojo
.
provide
(
"tests._base.lang"
);
tests
.
register
(
"tests._base.lang"
,
[
function
mixin
(
t
){
var
src
=
{
foo
:
function
(){
t
.
debug
(
"foo"
);
},
bar
:
"bar"
};
var
dest
=
{};
dojo
.
mixin
(
dest
,
src
);
t
.
assertEqual
(
"function"
,
typeof
dest
[
"foo"
]);
t
.
assertEqual
(
"string"
,
typeof
dest
[
"bar"
]);
},
function
extend
(
t
){
var
src
=
{
foo
:
function
(){
t
.
debug
(
"foo"
);
},
bar
:
"bar"
};
function
dest
(){}
dojo
.
extend
(
dest
,
src
);
var
test
=
new
dest
();
t
.
assertEqual
(
"function"
,
typeof
test
[
"foo"
]);
t
.
assertEqual
(
"string"
,
typeof
test
[
"bar"
]);
},
function
isObject
(
t
){
t
.
assertFalse
(
dojo
.
isObject
(
true
));
t
.
assertFalse
(
dojo
.
isObject
(
false
));
t
.
assertFalse
(
dojo
.
isObject
(
"foo"
));
t
.
assertTrue
(
dojo
.
isObject
(
new
String
(
"foo"
)));
t
.
assertTrue
(
dojo
.
isObject
(
null
));
t
.
assertTrue
(
dojo
.
isObject
({}));
t
.
assertTrue
(
dojo
.
isObject
([]));
t
.
assertTrue
(
dojo
.
isObject
(
new
Array
()));
},
function
isArray
(
t
){
t
.
assertTrue
(
dojo
.
isArray
([]));
t
.
assertTrue
(
dojo
.
isArray
(
new
Array
()));
t
.
assertFalse
(
dojo
.
isArray
({}));
},
function
isArrayLike
(
t
){
t
.
assertFalse
(
dojo
.
isArrayLike
(
"thinger"
));
t
.
assertTrue
(
dojo
.
isArrayLike
(
new
Array
()));
t
.
assertFalse
(
dojo
.
isArrayLike
({}));
t
.
assertTrue
(
dojo
.
isArrayLike
(
arguments
));
},
function
isString
(
t
){
t
.
assertFalse
(
dojo
.
isString
(
true
));
t
.
assertFalse
(
dojo
.
isString
(
false
));
t
.
assertTrue
(
dojo
.
isString
(
"foo"
));
t
.
assertTrue
(
dojo
.
isString
(
new
String
(
"foo"
)));
t
.
assertFalse
(
dojo
.
isString
(
null
));
t
.
assertFalse
(
dojo
.
isString
({}));
t
.
assertFalse
(
dojo
.
isString
([]));
},
function
partial
(
t
){
var
scope
=
{
foo
:
"bar"
};
var
scope2
=
{
foo
:
"baz"
};
function
thinger
(
arg1
,
arg2
){
return
[
this
.
foo
,
arg1
,
arg2
];
}
var
st1
=
dojo
.
partial
(
thinger
);
t
.
assertEqual
(
"bar"
,
st1
.
call
(
scope
)[
0
]);
t
.
assertEqual
(
undefined
,
st1
()[
0
]);
var
st2
=
dojo
.
partial
(
thinger
,
"foo"
,
"bar"
);
t
.
assertEqual
(
"bar"
,
st2
()[
2
]);
var
st3
=
dojo
.
partial
(
thinger
,
"foo"
,
"bar"
);
},
function
nestedPartial
(
t
){
function
thinger
(
arg1
,
arg2
){
return
[
arg1
,
arg2
];
}
var
st1
=
dojo
.
partial
(
thinger
,
"foo"
);
t
.
assertEqual
(
undefined
,
st1
()[
1
]);
t
.
assertEqual
(
"bar"
,
st1
(
"bar"
)[
1
]);
// partials can accumulate
var
st2
=
dojo
.
partial
(
st1
,
"thud"
);
t
.
assertEqual
(
"foo"
,
st2
()[
0
]);
t
.
assertEqual
(
"thud"
,
st2
()[
1
]);
},
function
hitch
(
t
){
var
scope
=
{
foo
:
"bar"
};
var
scope2
=
{
foo
:
"baz"
};
function
thinger
(){
return
[
this
.
foo
,
arguments
.
length
];
}
var
st1
=
dojo
.
hitch
(
scope
,
thinger
);
t
.
assertEqual
(
"bar"
,
st1
()[
0
]);
t
.
assertEqual
(
0
,
st1
()[
1
]);
var
st2
=
dojo
.
hitch
(
scope2
,
thinger
);
t
.
assertEqual
(
"baz"
,
st2
()[
0
]);
t
.
assertEqual
(
0
,
st1
()[
1
]);
t
.
assertEqual
(
1
,
st1
(
"blah"
)[
1
]);
// st2 should be "scope proof"
t
.
assertEqual
(
"baz"
,
st2
.
call
(
scope
)[
0
]);
},
function
hitchWithArgs
(
t
){
var
scope
=
{
foo
:
"bar"
};
var
scope2
=
{
foo
:
"baz"
};
function
thinger
(){
return
[
this
.
foo
,
arguments
.
length
];
}
var
st1
=
dojo
.
hitch
(
scope
,
thinger
,
"foo"
,
"bar"
);
t
.
assertEqual
(
"bar"
,
st1
()[
0
]);
t
.
assertEqual
(
2
,
st1
()[
1
]);
var
st2
=
dojo
.
hitch
(
scope2
,
thinger
,
"foo"
,
"bar"
);
t
.
assertEqual
(
"baz"
,
st2
()[
0
]);
t
.
assertEqual
(
2
,
st2
()[
1
]);
},
function
hitchAsPartial
(
t
){
var
scope
=
{
foo
:
"bar"
};
var
scope2
=
{
foo
:
"baz"
};
function
thinger
(
arg1
,
arg2
){
return
[
this
.
foo
,
arg1
,
arg2
];
}
var
st1
=
dojo
.
hitch
(
null
,
thinger
);
t
.
assertEqual
(
"bar"
,
st1
.
call
(
scope
)[
0
]);
t
.
assertEqual
(
undefined
,
st1
()[
0
]);
var
st2
=
dojo
.
hitch
(
null
,
thinger
,
"foo"
,
"bar"
);
t
.
assertEqual
(
"bar"
,
st2
()[
2
]);
var
st3
=
dojo
.
hitch
(
null
,
thinger
,
"foo"
,
"bar"
);
},
function
_toArray
(
t
){
var
obj1
=
[
'foo'
,
'bar'
,
'spam'
,
'ham'
];
function
thinger
(){
return
dojo
.
_toArray
(
arguments
);
}
var
obj2
=
thinger
.
apply
(
this
,
obj1
);
t
.
assertEqual
(
obj1
[
0
],
obj2
[
0
]);
},
function
clone
(
t
)
{
var
obj1
=
{
foo
:
'bar'
,
answer
:
42
,
jan102007
:
new
Date
(
2007
,
0
,
10
),
baz
:
{
a
:
null
,
b
:
[
1
,
"b"
,
2.3
,
true
,
false
//, function(){ return 4; }, /\d+/gm
]
}
};
var
obj2
=
dojo
.
clone
(
obj1
);
t
.
assertEqual
(
obj1
.
foo
,
obj2
.
foo
);
t
.
assertEqual
(
obj1
.
answer
,
obj2
.
answer
);
t
.
assertEqual
(
obj1
.
jan102007
,
obj2
.
jan102007
);
t
.
assertEqual
(
obj1
.
baz
.
a
,
obj2
.
baz
.
a
);
for
(
var
i
=
0
;
i
<
obj1
.
baz
.
b
.
length
;
++
i
){
t
.
assertEqual
(
obj1
.
baz
.
b
[
i
],
obj2
.
baz
.
b
[
i
]);
}
}
]
);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Apr 2 2025, 05:34 (4 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27107
Default Alt Text
lang.js (4 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment