aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/robertkrimen/otto/type_go_map.go
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/github.com/robertkrimen/otto/type_go_map.go')
-rw-r--r--Godeps/_workspace/src/github.com/robertkrimen/otto/type_go_map.go87
1 files changed, 0 insertions, 87 deletions
diff --git a/Godeps/_workspace/src/github.com/robertkrimen/otto/type_go_map.go b/Godeps/_workspace/src/github.com/robertkrimen/otto/type_go_map.go
deleted file mode 100644
index 3e204a028..000000000
--- a/Godeps/_workspace/src/github.com/robertkrimen/otto/type_go_map.go
+++ /dev/null
@@ -1,87 +0,0 @@
-package otto
-
-import (
- "reflect"
-)
-
-func (runtime *_runtime) newGoMapObject(value reflect.Value) *_object {
- self := runtime.newObject()
- self.class = "Object" // TODO Should this be something else?
- self.objectClass = _classGoMap
- self.value = _newGoMapObject(value)
- return self
-}
-
-type _goMapObject struct {
- value reflect.Value
- keyKind reflect.Kind
- valueKind reflect.Kind
-}
-
-func _newGoMapObject(value reflect.Value) *_goMapObject {
- if value.Kind() != reflect.Map {
- dbgf("%/panic//%@: %v != reflect.Map", value.Kind())
- }
- self := &_goMapObject{
- value: value,
- keyKind: value.Type().Key().Kind(),
- valueKind: value.Type().Elem().Kind(),
- }
- return self
-}
-
-func (self _goMapObject) toKey(name string) reflect.Value {
- reflectValue, err := stringToReflectValue(name, self.keyKind)
- if err != nil {
- panic(err)
- }
- return reflectValue
-}
-
-func (self _goMapObject) toValue(value Value) reflect.Value {
- reflectValue, err := value.toReflectValue(self.valueKind)
- if err != nil {
- panic(err)
- }
- return reflectValue
-}
-
-func goMapGetOwnProperty(self *_object, name string) *_property {
- object := self.value.(*_goMapObject)
- value := object.value.MapIndex(object.toKey(name))
- if value.IsValid() {
- return &_property{self.runtime.toValue(value.Interface()), 0111}
- }
-
- return nil
-}
-
-func goMapEnumerate(self *_object, all bool, each func(string) bool) {
- object := self.value.(*_goMapObject)
- keys := object.value.MapKeys()
- for _, key := range keys {
- if !each(toValue(key).String()) {
- return
- }
- }
-}
-
-func goMapDefineOwnProperty(self *_object, name string, descriptor _property, throw bool) bool {
- object := self.value.(*_goMapObject)
- // TODO ...or 0222
- if descriptor.mode != 0111 {
- return self.runtime.typeErrorResult(throw)
- }
- if !descriptor.isDataDescriptor() {
- return self.runtime.typeErrorResult(throw)
- }
- object.value.SetMapIndex(object.toKey(name), object.toValue(descriptor.value.(Value)))
- return true
-}
-
-func goMapDelete(self *_object, name string, throw bool) bool {
- object := self.value.(*_goMapObject)
- object.value.SetMapIndex(object.toKey(name), reflect.Value{})
- // FIXME
- return true
-}