Specs: Tokeniser should return to return state, not data state; &#x; should not emit U+FFFD.

BUG=8

Review URL: https://codereview.chromium.org/650323005
diff --git a/sky/specs/parsing.md b/sky/specs/parsing.md
index c353583..e5e9f28 100644
--- a/sky/specs/parsing.md
+++ b/sky/specs/parsing.md
@@ -638,7 +638,7 @@
   character.
 
 * Anything else: Run the _emitting operation_ for all but the last
-  character in _raw value_, and switch to the **data state** without
+  character in _raw value_, and switch to the _return state_ without
   consuming the current character.
 
 
@@ -648,8 +648,8 @@
 
 If the current character is...
 
-* '``x``', '``X``': Let _value_ be zero, consume the character,
-  and switch to the **hexadecimal numeric character reference** state.
+* '``x``', '``X``': Consume the character and switch to the **before
+  hexadecimal numeric character reference** state.
 
 * '``0``'..'``9``': Let _value_ be the numeric value of the
   current character interpreted as a decimal digit, consume the
@@ -657,7 +657,23 @@
   state.
 
 * Anything else: Run the _emitting operation_ for all but the last
-  character in _raw value_, and switch to the **data state** without
+  character in _raw value_, and switch to the _return state_ without
+  consuming the current character.
+
+
+#### **Before hexadecimal numeric character reference** state ####
+
+Append the current character to _raw value_.
+
+If the current character is...
+
+* '``0``'..'``9``', '``a``'..'``f``', '``A``'..'``F``':
+  Let _value_ be the numeric value of the current character
+  interpreted as a hexadecimal digit, consume the character, and
+  switch to the **hexadecimal numeric character reference** state.
+
+* Anything else: Run the _emitting operation_ for all but the last
+  character in _raw value_, and switch to the _return state_ without
   consuming the current character.
 
 
@@ -679,7 +695,7 @@
   state_.
 
 * Anything else: Run the _emitting operation_ for all but the last
-  character in _raw value_, and switch to the **data state** without
+  character in _raw value_, and switch to the _return state_ without
   consuming the current character.
 
 
@@ -701,7 +717,7 @@
   state_.
 
 * Anything else: Run the _emitting operation_ for all but the last
-  character in _raw value_, and switch to the **data state** without
+  character in _raw value_, and switch to the _return state_ without
   consuming the current character.
 
 
@@ -735,7 +751,7 @@
   character and stay in this state.
 
 * Anything else: Run the _emitting operation_ for all but the last
-  character in _raw value_, and switch to the **data state** without
+  character in _raw value_, and switch to the _return state_ without
   consuming the current character.