Changeset 176825 in webkit for trunk/Source/JavaScriptCore/parser/Parser.h
- Timestamp:
- Dec 4, 2014, 4:59:33 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Parser.h
r176756 r176825 403 403 404 404 template <class ParsedNode> 405 PassRefPtr<ParsedNode> parse(ParserError&, bool needReparsingAdjustment);405 std::unique_ptr<ParsedNode> parse(ParserError&, bool needReparsingAdjustment); 406 406 407 407 JSTextPosition positionBeforeLastNewline() const { return m_lexer->positionBeforeLastNewline(); } … … 862 862 template <typename LexerType> 863 863 template <class ParsedNode> 864 PassRefPtr<ParsedNode> Parser<LexerType>::parse(ParserError& error, bool needReparsingAdjustment)864 std::unique_ptr<ParsedNode> Parser<LexerType>::parse(ParserError& error, bool needReparsingAdjustment) 865 865 { 866 866 int errLine; … … 893 893 } 894 894 895 RefPtr<ParsedNode> result;895 std::unique_ptr<ParsedNode> result; 896 896 if (m_sourceElements) { 897 897 JSTokenLocation endLocation; … … 900 900 endLocation.startOffset = m_lexer->currentOffset(); 901 901 unsigned endColumn = endLocation.startOffset - endLocation.lineStartOffset; 902 result = ParsedNode::create(m_parserArena,902 result = std::make_unique<ParsedNode>(m_parserArena, 903 903 startLocation, 904 904 endLocation, … … 937 937 } 938 938 939 return result .release();939 return result; 940 940 } 941 941 942 942 template <class ParsedNode> 943 PassRefPtr<ParsedNode> parse(VM* vm, const SourceCode& source, FunctionParameters* parameters, const Identifier& name, JSParserStrictness strictness, JSParserMode parserMode, ParserError& error, JSTextPosition* positionBeforeLastNewline = 0, bool needReparsingAdjustment = false)943 std::unique_ptr<ParsedNode> parse(VM* vm, const SourceCode& source, FunctionParameters* parameters, const Identifier& name, JSParserStrictness strictness, JSParserMode parserMode, ParserError& error, JSTextPosition* positionBeforeLastNewline = 0, bool needReparsingAdjustment = false) 944 944 { 945 945 SamplingRegion samplingRegion("Parsing"); … … 948 948 if (source.provider()->source().is8Bit()) { 949 949 Parser<Lexer<LChar>> parser(vm, source, parameters, name, strictness, parserMode); 950 RefPtr<ParsedNode> result = parser.parse<ParsedNode>(error, needReparsingAdjustment);950 std::unique_ptr<ParsedNode> result = parser.parse<ParsedNode>(error, needReparsingAdjustment); 951 951 if (positionBeforeLastNewline) 952 952 *positionBeforeLastNewline = parser.positionBeforeLastNewline(); … … 957 957 result->setClosedVariables(parser.closedVariables()); 958 958 } 959 return result .release();959 return result; 960 960 } 961 961 Parser<Lexer<UChar>> parser(vm, source, parameters, name, strictness, parserMode); 962 RefPtr<ParsedNode> result = parser.parse<ParsedNode>(error, needReparsingAdjustment);962 std::unique_ptr<ParsedNode> result = parser.parse<ParsedNode>(error, needReparsingAdjustment); 963 963 if (positionBeforeLastNewline) 964 964 *positionBeforeLastNewline = parser.positionBeforeLastNewline(); 965 return result .release();965 return result; 966 966 } 967 967
Note:
See TracChangeset
for help on using the changeset viewer.