js.core: Remove generated IsZero logic.
The purpose of the IsZero logic was as a speed-up; the normal vom
zero-field encoding is slow, since it actually encodes fields and
then backtracks to throw away zero-valued fields. However the
generated IsZero was actually significantly *slower*, for the
native types case, and possibly also the non-native types case.
In the future we will re-enable the IsZero logic for simple
cases (no native types, no typeobject or union). And we may
enable IsZero for the more complicated cases, if we can come up
with a simple strategy that is actually faster that the default
backtracking implementation.
MultiPart: 4/6
Change-Id: Ic6e60d44142b5dc2a2c273efba6f6e5dbd1177f4
diff --git a/go/src/v.io/x/js.core/stress/stress.vdl.go b/go/src/v.io/x/js.core/stress/stress.vdl.go
index 6a6c3b5..3b8eecd 100644
--- a/go/src/v.io/x/js.core/stress/stress.vdl.go
+++ b/go/src/v.io/x/js.core/stress/stress.vdl.go
@@ -41,49 +41,40 @@
return err
}
- var2 := (m.Iterations == int64(0))
- if !var2 {
- keyTarget3, fieldTarget4, err := fieldsTarget1.StartField("Iterations")
- if err != vdl.ErrFieldNoExist && err != nil {
+ keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Iterations")
+ if err != vdl.ErrFieldNoExist && err != nil {
+ return err
+ }
+ if err != vdl.ErrFieldNoExist {
+ if err := fieldTarget3.FromInt(int64(m.Iterations), vdl.Int64Type); err != nil {
return err
}
- if err != vdl.ErrFieldNoExist {
- if err := fieldTarget4.FromInt(int64(m.Iterations), vdl.Int64Type); err != nil {
- return err
- }
- if err := fieldsTarget1.FinishField(keyTarget3, fieldTarget4); err != nil {
- return err
- }
+ if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
+ return err
}
}
- var5 := (m.Qps == float64(0))
- if !var5 {
- keyTarget6, fieldTarget7, err := fieldsTarget1.StartField("Qps")
- if err != vdl.ErrFieldNoExist && err != nil {
+ keyTarget4, fieldTarget5, err := fieldsTarget1.StartField("Qps")
+ if err != vdl.ErrFieldNoExist && err != nil {
+ return err
+ }
+ if err != vdl.ErrFieldNoExist {
+ if err := fieldTarget5.FromFloat(float64(m.Qps), vdl.Float64Type); err != nil {
return err
}
- if err != vdl.ErrFieldNoExist {
- if err := fieldTarget7.FromFloat(float64(m.Qps), vdl.Float64Type); err != nil {
- return err
- }
- if err := fieldsTarget1.FinishField(keyTarget6, fieldTarget7); err != nil {
- return err
- }
+ if err := fieldsTarget1.FinishField(keyTarget4, fieldTarget5); err != nil {
+ return err
}
}
- var8 := (m.MsecsPerRpc == float64(0))
- if !var8 {
- keyTarget9, fieldTarget10, err := fieldsTarget1.StartField("MsecsPerRpc")
- if err != vdl.ErrFieldNoExist && err != nil {
+ keyTarget6, fieldTarget7, err := fieldsTarget1.StartField("MsecsPerRpc")
+ if err != vdl.ErrFieldNoExist && err != nil {
+ return err
+ }
+ if err != vdl.ErrFieldNoExist {
+ if err := fieldTarget7.FromFloat(float64(m.MsecsPerRpc), vdl.Float64Type); err != nil {
return err
}
- if err != vdl.ErrFieldNoExist {
- if err := fieldTarget10.FromFloat(float64(m.MsecsPerRpc), vdl.Float64Type); err != nil {
- return err
- }
- if err := fieldsTarget1.FinishField(keyTarget9, fieldTarget10); err != nil {
- return err
- }
+ if err := fieldsTarget1.FinishField(keyTarget6, fieldTarget7); err != nil {
+ return err
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
@@ -96,12 +87,6 @@
return nil
}
-func (m *StressResults) IsZero() bool {
-
- var1 := (*m == StressResults{})
- return var1
-}
-
func init() {
vdl.Register((*StressResults)(nil))
}
diff --git a/go/src/v.io/x/js.core/test_service/cache.vdl.go b/go/src/v.io/x/js.core/test_service/cache.vdl.go
index 95292ce..1eb5246 100644
--- a/go/src/v.io/x/js.core/test_service/cache.vdl.go
+++ b/go/src/v.io/x/js.core/test_service/cache.vdl.go
@@ -53,12 +53,6 @@
return nil
}
-func (m KeyPageResult) IsZero() bool {
-
- var1 := (m == KeyPageResult{})
- return var1
-}
-
// KeyValuePair is a representation of a cached key and value pair.
type KeyValuePair struct {
Key string
@@ -80,41 +74,35 @@
return err
}
- var2 := (m.Key == "")
- if !var2 {
- keyTarget3, fieldTarget4, err := fieldsTarget1.StartField("Key")
- if err != vdl.ErrFieldNoExist && err != nil {
+ keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Key")
+ if err != vdl.ErrFieldNoExist && err != nil {
+ return err
+ }
+ if err != vdl.ErrFieldNoExist {
+ if err := fieldTarget3.FromString(string(m.Key), vdl.StringType); err != nil {
return err
}
- if err != vdl.ErrFieldNoExist {
- if err := fieldTarget4.FromString(string(m.Key), vdl.StringType); err != nil {
- return err
- }
- if err := fieldsTarget1.FinishField(keyTarget3, fieldTarget4); err != nil {
- return err
- }
+ if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
+ return err
}
}
- var5 := (m.Value == (*vom.RawBytes)(nil))
- if !var5 {
- keyTarget6, fieldTarget7, err := fieldsTarget1.StartField("Value")
- if err != vdl.ErrFieldNoExist && err != nil {
- return err
- }
- if err != vdl.ErrFieldNoExist {
+ keyTarget4, fieldTarget5, err := fieldsTarget1.StartField("Value")
+ if err != vdl.ErrFieldNoExist && err != nil {
+ return err
+ }
+ if err != vdl.ErrFieldNoExist {
- if m.Value == nil {
- if err := fieldTarget7.FromNil(vdl.AnyType); err != nil {
- return err
- }
- } else {
- if err := m.Value.FillVDLTarget(fieldTarget7, vdl.AnyType); err != nil {
- return err
- }
- }
- if err := fieldsTarget1.FinishField(keyTarget6, fieldTarget7); err != nil {
+ if m.Value == nil {
+ if err := fieldTarget5.FromNil(vdl.AnyType); err != nil {
return err
}
+ } else {
+ if err := m.Value.FillVDLTarget(fieldTarget5, vdl.AnyType); err != nil {
+ return err
+ }
+ }
+ if err := fieldsTarget1.FinishField(keyTarget4, fieldTarget5); err != nil {
+ return err
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
@@ -127,12 +115,6 @@
return nil
}
-func (m *KeyValuePair) IsZero() bool {
-
- var1 := (*m == KeyValuePair{})
- return var1
-}
-
func init() {
vdl.Register((*KeyPageResult)(nil))
vdl.Register((*KeyValuePair)(nil))
diff --git a/go/src/v.io/x/js.core/test_service/invoke_method_caveat_id.vdl.go b/go/src/v.io/x/js.core/test_service/invoke_method_caveat_id.vdl.go
index 9ce4033..85e4079 100644
--- a/go/src/v.io/x/js.core/test_service/invoke_method_caveat_id.vdl.go
+++ b/go/src/v.io/x/js.core/test_service/invoke_method_caveat_id.vdl.go
@@ -40,41 +40,35 @@
return err
}
- var2 := (m.A == "")
- if !var2 {
- keyTarget3, fieldTarget4, err := fieldsTarget1.StartField("A")
- if err != vdl.ErrFieldNoExist && err != nil {
+ keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
+ if err != vdl.ErrFieldNoExist && err != nil {
+ return err
+ }
+ if err != vdl.ErrFieldNoExist {
+ if err := fieldTarget3.FromString(string(m.A), vdl.StringType); err != nil {
return err
}
- if err != vdl.ErrFieldNoExist {
- if err := fieldTarget4.FromString(string(m.A), vdl.StringType); err != nil {
- return err
- }
- if err := fieldsTarget1.FinishField(keyTarget3, fieldTarget4); err != nil {
- return err
- }
+ if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
+ return err
}
}
- var5 := (m.B == (*vom.RawBytes)(nil))
- if !var5 {
- keyTarget6, fieldTarget7, err := fieldsTarget1.StartField("B")
- if err != vdl.ErrFieldNoExist && err != nil {
- return err
- }
- if err != vdl.ErrFieldNoExist {
+ keyTarget4, fieldTarget5, err := fieldsTarget1.StartField("B")
+ if err != vdl.ErrFieldNoExist && err != nil {
+ return err
+ }
+ if err != vdl.ErrFieldNoExist {
- if m.B == nil {
- if err := fieldTarget7.FromNil(vdl.AnyType); err != nil {
- return err
- }
- } else {
- if err := m.B.FillVDLTarget(fieldTarget7, vdl.AnyType); err != nil {
- return err
- }
- }
- if err := fieldsTarget1.FinishField(keyTarget6, fieldTarget7); err != nil {
+ if m.B == nil {
+ if err := fieldTarget5.FromNil(vdl.AnyType); err != nil {
return err
}
+ } else {
+ if err := m.B.FillVDLTarget(fieldTarget5, vdl.AnyType); err != nil {
+ return err
+ }
+ }
+ if err := fieldsTarget1.FinishField(keyTarget4, fieldTarget5); err != nil {
+ return err
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
@@ -87,12 +81,6 @@
return nil
}
-func (m *TestCaveatData) IsZero() bool {
-
- var1 := (*m == TestCaveatData{})
- return var1
-}
-
func init() {
vdl.Register((*TestCaveatData)(nil))
}