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

* Proper lowercasing for internal stuff * *Environment => *_stash * ExecutionContext => _scope * Simpler & shallower call/construct mechanics * Remove unnecessary fields & methods * Better scoping (no more stack): []*_scope => _scope.outer * Some speed improvements In preparation for #66
29 lines
724 B
Go
29 lines
724 B
Go
package otto
|
|
|
|
// Boolean
|
|
|
|
func builtinBoolean(call FunctionCall) Value {
|
|
return toValue_bool(toBoolean(call.Argument(0)))
|
|
}
|
|
|
|
func builtinNewBoolean(self *_object, argumentList []Value) Value {
|
|
return toValue_object(self.runtime.newBoolean(valueOfArrayIndex(argumentList, 0)))
|
|
}
|
|
|
|
func builtinBoolean_toString(call FunctionCall) Value {
|
|
value := call.This
|
|
if !value.IsBoolean() {
|
|
// Will throw a TypeError if ThisObject is not a Boolean
|
|
value = call.thisClassObject("Boolean").primitiveValue()
|
|
}
|
|
return toValue_string(toString(value))
|
|
}
|
|
|
|
func builtinBoolean_valueOf(call FunctionCall) Value {
|
|
value := call.This
|
|
if !value.IsBoolean() {
|
|
value = call.thisClassObject("Boolean").primitiveValue()
|
|
}
|
|
return value
|
|
}
|