Commit e6062e85 authored by Jeff Walden's avatar Jeff Walden
Browse files

Bug 1476866 - Implement a bare-bones TokenStreamChars specialization for...

Bug 1476866 - Implement a bare-bones TokenStreamChars specialization for UTF-8, into which subsequent UTF-8-centric functions can be added.  r=arai

--HG--
extra : rebase_source : 1089aa8523c395d9bf2435f99e84fd815d136c7b
parent 458e7089
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -1584,7 +1584,6 @@ template<class AnyCharsAccess>
class TokenStreamChars<char16_t, AnyCharsAccess>
  : public GeneralTokenStreamChars<char16_t, AnyCharsAccess>
{
  private:
    using CharsBase = TokenStreamCharsBase<char16_t>;
    using SpecializedCharsBase = SpecializedTokenStreamCharsBase<char16_t>;
    using GeneralCharsBase = GeneralTokenStreamChars<char16_t, AnyCharsAccess>;
@@ -1720,6 +1719,22 @@ class TokenStreamChars<char16_t, AnyCharsAccess>
    }
};

template<class AnyCharsAccess>
class TokenStreamChars<mozilla::Utf8Unit, AnyCharsAccess>
  : public GeneralTokenStreamChars<mozilla::Utf8Unit, AnyCharsAccess>
{
    using CharsBase = TokenStreamCharsBase<mozilla::Utf8Unit>;
    using SpecializedCharsBase = SpecializedTokenStreamCharsBase<mozilla::Utf8Unit>;
    using GeneralCharsBase = GeneralTokenStreamChars<mozilla::Utf8Unit, AnyCharsAccess>;
    using Self = TokenStreamChars<mozilla::Utf8Unit, AnyCharsAccess>;

  protected:
    // Deliberately don't |using| |sourceUnits| because of bug 1472569.  :-(

  protected:
    using GeneralCharsBase::GeneralCharsBase;
};

// TokenStream is the lexical scanner for JavaScript source text.
//
// It takes a buffer of CharT code units (currently only char16_t encoding