Tracestate.Entries should work on nil *Tracestate (#902)

diff --git a/trace/tracestate/tracestate.go b/trace/tracestate/tracestate.go
index a3232e2..2345dd3 100644
--- a/trace/tracestate/tracestate.go
+++ b/trace/tracestate/tracestate.go
@@ -55,6 +55,9 @@
 
 // Entries returns a slice of Entry.
 func (ts *Tracestate) Entries() []Entry {
+	if ts == nil {
+		return nil
+	}
 	return ts.entries
 }
 
diff --git a/trace/tracestate/tracestate_test.go b/trace/tracestate/tracestate_test.go
index f4b2635..db76d9c 100644
--- a/trace/tracestate/tracestate_test.go
+++ b/trace/tracestate/tracestate_test.go
@@ -301,3 +301,13 @@
 	wantError(t, tracestate, err, testname,
 		"create did not err when entries contained duplicate keys")
 }
+
+func TestEntriesWithNil(t *testing.T) {
+	ts, err := New(nil)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if got, want := len(ts.Entries()), 0; got != want {
+		t.Errorf("zero value should have no entries, got %v; want %v", got, want)
+	}
+}