diff options
Diffstat (limited to 'WebCore/loader/CachedScript.cpp')
-rw-r--r-- | WebCore/loader/CachedScript.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/WebCore/loader/CachedScript.cpp b/WebCore/loader/CachedScript.cpp index 466a5e9..c96427c 100644 --- a/WebCore/loader/CachedScript.cpp +++ b/WebCore/loader/CachedScript.cpp @@ -37,6 +37,7 @@ namespace WebCore { CachedScript::CachedScript(const String& url, const String& charset) : CachedResource(url, Script) + , m_scriptHasBOMs(SourceCouldHaveBOMs) , m_decoder(TextResourceDecoder::create("application/javascript", charset)) , m_decodedDataDeletionTimer(this, &CachedScript::decodedDataDeletionTimerFired) { @@ -78,6 +79,11 @@ const String& CachedScript::script() if (!m_script && m_data) { m_script = m_decoder->decode(m_data->data(), encodedSize()); m_script += m_decoder->flush(); + if (m_scriptHasBOMs != SourceHasNoBOMs && m_script.length()) { + bool hasBOMs = false; + m_script = String(m_script.impl()->copyStringWithoutBOMs(m_scriptHasBOMs == SourceHasBOMs, hasBOMs)); + m_scriptHasBOMs = hasBOMs ? SourceHasBOMs : SourceHasNoBOMs; + } setDecodedSize(m_script.length() * sizeof(UChar)); } |