Changeset 62449 in webkit for trunk/WebCore/loader/CachedScript.h


Ignore:
Timestamp:
Jul 3, 2010, 1:30:24 PM (15 years ago)
Author:
[email protected]
Message:

Move BOM handling out of the lexer and parser
https://bugs.webkit.org/show_bug.cgi?id=41539

Reviewed by Geoffrey Garen.

JavaScriptCore:

Doing the BOM stripping in the lexer meant that we could
end up having to strip the BOMs from a source multiple times.
To deal with this we now require all strings provided by
a SourceProvider to already have had the BOMs stripped.
This also simplifies some of the lexer logic.

  • parser/Lexer.cpp:

(JSC::Lexer::setCode):
(JSC::Lexer::sourceCode):

  • parser/SourceProvider.h:

(JSC::SourceProvider::SourceProvider):
(JSC::UStringSourceProvider::create):
(JSC::UStringSourceProvider::getRange):
(JSC::UStringSourceProvider::UStringSourceProvider):

  • wtf/text/StringImpl.h:

(WebCore::StringImpl::copyStringWithoutBOMs):

WebCore:

Update WebCore to ensure that SourceProviders don't
produce strings with BOMs in them.

  • bindings/js/ScriptSourceProvider.h:

(WebCore::ScriptSourceProvider::ScriptSourceProvider):

  • bindings/js/StringSourceProvider.h:

(WebCore::StringSourceProvider::StringSourceProvider):

  • loader/CachedScript.cpp:

(WebCore::CachedScript::CachedScript):
(WebCore::CachedScript::script):

  • loader/CachedScript.h:

(WebCore::CachedScript::):

CachedScript now stores decoded data with the BOMs stripped,
and caches the presence of BOMs across memory purges.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/loader/CachedScript.h

    r62416 r62449  
    6060
    6161        String m_script;
     62        enum { SourceHasNoBOMs, SourceCouldHaveBOMs, SourceHasBOMs } m_scriptHasBOMs;
    6263        RefPtr<TextResourceDecoder> m_decoder;
    6364        Timer<CachedScript> m_decodedDataDeletionTimer;
Note: See TracChangeset for help on using the changeset viewer.