Selaa lähdekoodia

Merge branch 'master' into es6

Dmitry Panov 5 vuotta sitten
vanhempi
commit
59dd0c4be0
2 muutettua tiedostoa jossa 18 lisäystä ja 1 poistoa
  1. 8 1
      object_goslice_reflect.go
  2. 10 0
      object_goslice_reflect_test.go

+ 8 - 1
object_goslice_reflect.go

@@ -65,6 +65,13 @@ func (o *objectGoSliceReflect) get(n Value) Value {
 	return o.objectGoReflect.get(n)
 }
 
+func (o *objectGoSliceReflect) getStr(name string) Value {
+	if v := o._getStr(name); v != nil {
+		return v
+	}
+	return o.objectGoReflect.getStr(name)
+}
+
 func (o *objectGoSliceReflect) getProp(n Value) Value {
 	if v := o._get(n); v != nil {
 		return v
@@ -185,7 +192,7 @@ func (o *objectGoSliceReflect) delete(name Value, throw bool) bool {
 		o.value.Index(int(idx)).Set(reflect.Zero(o.value.Type().Elem()))
 		return true
 	}
-	return true
+	return o.objectGoReflect.delete(name, throw)
 }
 
 type gosliceReflectPropIter struct {

+ 10 - 0
object_goslice_reflect_test.go

@@ -112,3 +112,13 @@ func TestGoSliceReflectMethod(t *testing.T) {
 	}
 
 }
+
+func TestGoSliceReflectGetStr(t *testing.T) {
+	r := New()
+	v := r.ToValue([]string{"test"})
+	if o, ok := v.(*Object); ok {
+		if e := o.Get("0").Export(); e != "test" {
+			t.Fatalf("Unexpected o.Get(\"0\"): %v", e)
+		}
+	}
+}