mirror of
https://github.com/robertkrimen/otto
synced 2025-10-12 20:27:30 +08:00

1. Can not delete a function parameter 2. Deleting the index of an arguments object simply removes the link to that function parameter
54 lines
1.0 KiB
Go
54 lines
1.0 KiB
Go
package otto
|
|
|
|
import (
|
|
. "github.com/robertkrimen/terst"
|
|
"testing"
|
|
)
|
|
|
|
func TestFunction_apply(t *testing.T) {
|
|
Terst(t)
|
|
|
|
test := runTest()
|
|
test(`String.prototype.substring.length`, "2")
|
|
test(`String.prototype.substring.apply("abc", [1, 11])`, "bc")
|
|
}
|
|
|
|
func TestFunction_call(t *testing.T) {
|
|
Terst(t)
|
|
|
|
test := runTest()
|
|
test(`String.prototype.substring.length`, "2")
|
|
test(`String.prototype.substring.call("abc", 1, 11)`, "bc")
|
|
}
|
|
|
|
func TestFunctionArguments(t *testing.T) {
|
|
Terst(t)
|
|
|
|
test := runTest()
|
|
// Should not be able to delete arguments
|
|
test(`
|
|
function abc(def, arguments){
|
|
delete def;
|
|
return def;
|
|
}
|
|
abc(1);
|
|
`, "1")
|
|
|
|
// Again, should not be able to delete arguments
|
|
test(`
|
|
function abc(def){
|
|
delete def;
|
|
return def;
|
|
}
|
|
abc(1);
|
|
`, "1")
|
|
|
|
// Test typeof of a function argument
|
|
test(`
|
|
function abc(def, ghi, jkl){
|
|
return typeof jkl
|
|
}
|
|
abc("1st", "2nd", "3rd", "4th", "5th");
|
|
`, "string")
|
|
}
|