diff --git a/core/fxcrt/cfx_widetextbuf.cpp b/core/fxcrt/cfx_widetextbuf.cpp
index f365f03..c1ff03f 100644
--- a/core/fxcrt/cfx_widetextbuf.cpp
+++ b/core/fxcrt/cfx_widetextbuf.cpp
@@ -57,25 +57,6 @@
   return *this;
 }
 
-CFX_WideTextBuf& CFX_WideTextBuf::operator<<(int i) {
-  char buf[32];
-  FXSYS_itoa(i, buf, 10);
-  size_t len = strlen(buf);
-  pdfium::span<wchar_t> new_span = ExpandWideBuf(len);
-  for (size_t j = 0; j < len; j++)
-    new_span[j] = buf[j];
-  return *this;
-}
-
-CFX_WideTextBuf& CFX_WideTextBuf::operator<<(double f) {
-  char buf[32];
-  size_t len = FloatToString((float)f, buf);
-  pdfium::span<wchar_t> new_span = ExpandWideBuf(len);
-  for (size_t i = 0; i < len; i++)
-    new_span[i] = buf[i];
-  return *this;
-}
-
 CFX_WideTextBuf& CFX_WideTextBuf::operator<<(const wchar_t* lpsz) {
   AppendBlock(lpsz, wcslen(lpsz) * sizeof(wchar_t));
   return *this;
diff --git a/core/fxcrt/cfx_widetextbuf.h b/core/fxcrt/cfx_widetextbuf.h
index 6ba6d78..7f8a0f8 100644
--- a/core/fxcrt/cfx_widetextbuf.h
+++ b/core/fxcrt/cfx_widetextbuf.h
@@ -26,8 +26,6 @@
   void AppendChar(wchar_t wch);
   void Delete(int start_index, int count);
 
-  CFX_WideTextBuf& operator<<(int i);
-  CFX_WideTextBuf& operator<<(double f);
   CFX_WideTextBuf& operator<<(ByteStringView ascii);
   CFX_WideTextBuf& operator<<(const wchar_t* lpsz);
   CFX_WideTextBuf& operator<<(WideStringView str);
diff --git a/core/fxcrt/cfx_widetextbuf_unittest.cpp b/core/fxcrt/cfx_widetextbuf_unittest.cpp
index 5ebfb39..2085add 100644
--- a/core/fxcrt/cfx_widetextbuf_unittest.cpp
+++ b/core/fxcrt/cfx_widetextbuf_unittest.cpp
@@ -19,8 +19,8 @@
 
 TEST(WideTextBuf, OperatorLtLt) {
   CFX_WideTextBuf wtb;
-  wtb << 42 << 3.14 << "clams" << L"\u208c\u208e";
-  EXPECT_EQ(wtb.MakeString(), L"423.14clams\u208c\u208e");
+  wtb << "clams" << L"\u208c\u208e";
+  EXPECT_EQ(wtb.MakeString(), L"clams\u208c\u208e");
 }
 
 TEST(WideTextBuf, Deletion) {
