diff options
Diffstat (limited to 'Source/WebCore/bindings/js/ScriptSourceCode.h')
-rw-r--r-- | Source/WebCore/bindings/js/ScriptSourceCode.h | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/Source/WebCore/bindings/js/ScriptSourceCode.h b/Source/WebCore/bindings/js/ScriptSourceCode.h index 2d3c15970..06a8edc83 100644 --- a/Source/WebCore/bindings/js/ScriptSourceCode.h +++ b/Source/WebCore/bindings/js/ScriptSourceCode.h @@ -28,11 +28,11 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef ScriptSourceCode_h -#define ScriptSourceCode_h +#pragma once #include "CachedResourceHandle.h" #include "CachedScript.h" +#include "CachedScriptFetcher.h" #include "CachedScriptSourceProvider.h" #include "URL.h" #include <parser/SourceProvider.h> @@ -43,43 +43,44 @@ namespace WebCore { class ScriptSourceCode { public: - ScriptSourceCode(const String& source, const URL& url = URL(), const TextPosition& startPosition = TextPosition::minimumPosition()) - : m_provider(JSC::StringSourceProvider::create(source, url.isNull() ? String() : url.string(), startPosition)) - , m_code(m_provider, startPosition.m_line.oneBasedInt(), startPosition.m_column.oneBasedInt()) + ScriptSourceCode(const String& source, const URL& url = URL(), const TextPosition& startPosition = TextPosition(), JSC::SourceProviderSourceType sourceType = JSC::SourceProviderSourceType::Program) + : m_provider(JSC::StringSourceProvider::create(source, JSC::SourceOrigin { url.string() }, url.string(), startPosition, sourceType)) + , m_code(m_provider.copyRef(), startPosition.m_line.oneBasedInt(), startPosition.m_column.oneBasedInt()) , m_url(url) { } - explicit ScriptSourceCode(CachedScript* cachedScript) - : m_provider(CachedScriptSourceProvider::create(cachedScript)) - , m_code(m_provider) + ScriptSourceCode(CachedScript* cachedScript, JSC::SourceProviderSourceType sourceType, Ref<CachedScriptFetcher>&& scriptFetcher) + : m_provider(CachedScriptSourceProvider::create(cachedScript, sourceType, WTFMove(scriptFetcher))) + , m_code(m_provider.copyRef()) , m_cachedScript(cachedScript) { } + ScriptSourceCode(const String& source, const URL& url, const TextPosition& startPosition, JSC::SourceProviderSourceType sourceType, Ref<CachedScriptFetcher>&& scriptFetcher) + : m_provider(JSC::StringSourceProvider::create(source, JSC::SourceOrigin { url.string(), WTFMove(scriptFetcher) }, url.string(), startPosition, sourceType)) + , m_code(m_provider.copyRef(), startPosition.m_line.oneBasedInt(), startPosition.m_column.oneBasedInt()) + , m_url(url) + { + } + bool isEmpty() const { return m_code.length() == 0; } const JSC::SourceCode& jsSourceCode() const { return m_code; } - const String& source() const { return m_provider->source(); } + StringView source() const { return m_provider->source(); } - int startLine() const { return m_code.firstLine(); } + int startLine() const { return m_code.firstLine().oneBasedInt(); } CachedScript* cachedScript() const { return m_cachedScript.get(); } const URL& url() const { return m_url; } private: - RefPtr<JSC::SourceProvider> m_provider; - + Ref<JSC::SourceProvider> m_provider; JSC::SourceCode m_code; - CachedResourceHandle<CachedScript> m_cachedScript; - URL m_url; - }; } // namespace WebCore - -#endif // ScriptSourceCode_h |