package goja
func (r *Runtime ) booleanproto_toString (call FunctionCall ) Value {
var b bool
switch o := call .This .(type ) {
case valueBool :
b = bool (o )
goto success
case *Object :
if p , ok := o .self .(*primitiveValueObject ); ok {
if b1 , ok := p .pValue .(valueBool ); ok {
b = bool (b1 )
goto success
}
}
if o , ok := o .self .(*objectGoReflect ); ok {
if o .class == classBoolean && o .toString != nil {
return o .toString ()
}
}
}
r .typeErrorResult (true , "Method Boolean.prototype.toString is called on incompatible receiver" )
success :
if b {
return stringTrue
}
return stringFalse
}
func (r *Runtime ) booleanproto_valueOf (call FunctionCall ) Value {
switch o := call .This .(type ) {
case valueBool :
return o
case *Object :
if p , ok := o .self .(*primitiveValueObject ); ok {
if b , ok := p .pValue .(valueBool ); ok {
return b
}
}
if o , ok := o .self .(*objectGoReflect ); ok {
if o .class == classBoolean && o .valueOf != nil {
return o .valueOf ()
}
}
}
r .typeErrorResult (true , "Method Boolean.prototype.valueOf is called on incompatible receiver" )
return nil
}
func (r *Runtime ) getBooleanPrototype () *Object {
ret := r .global .BooleanPrototype
if ret == nil {
ret = r .newPrimitiveObject (valueFalse , r .global .ObjectPrototype , classBoolean )
r .global .BooleanPrototype = ret
o := ret .self
o ._putProp ("toString" , r .newNativeFunc (r .booleanproto_toString , "toString" , 0 ), true , false , true )
o ._putProp ("valueOf" , r .newNativeFunc (r .booleanproto_valueOf , "valueOf" , 0 ), true , false , true )
o ._putProp ("constructor" , r .getBoolean (), true , false , true )
}
return ret
}
func (r *Runtime ) getBoolean () *Object {
ret := r .global .Boolean
if ret == nil {
ret = &Object {runtime : r }
r .global .Boolean = ret
proto := r .getBooleanPrototype ()
r .newNativeFuncAndConstruct (ret , r .builtin_Boolean ,
r .wrapNativeConstruct (r .builtin_newBoolean , ret , proto ), proto , "Boolean" , intToValue (1 ))
}
return ret
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .