1
0
mirror of https://github.com/robertkrimen/otto synced 2025-10-12 20:27:30 +08:00
otto/function_test.go
Robert Krimen 321cc0dca8 Add _argumentsStash, with better conforming arguments behavior:
1. Can not delete a function parameter
    2. Deleting the index of an arguments object simply
       removes the link to that function parameter
2013-02-24 14:28:07 -08:00

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")
}