summaryrefslogtreecommitdiff
path: root/deps/v8
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8')
-rw-r--r--deps/v8/src/parsing/parser.cc1
-rw-r--r--deps/v8/src/parsing/preparser.cc4
-rw-r--r--deps/v8/src/parsing/scanner-inl.h4
-rw-r--r--deps/v8/src/parsing/scanner.cc7
-rw-r--r--deps/v8/src/parsing/scanner.h3
-rw-r--r--deps/v8/test/message/fail/hashbang-incomplete-string.js12
-rw-r--r--deps/v8/test/message/fail/hashbang-incomplete-string.out5
7 files changed, 21 insertions, 15 deletions
diff --git a/deps/v8/src/parsing/parser.cc b/deps/v8/src/parsing/parser.cc
index edb9604bb5..a05884adc0 100644
--- a/deps/v8/src/parsing/parser.cc
+++ b/deps/v8/src/parsing/parser.cc
@@ -503,7 +503,6 @@ FunctionLiteral* Parser::ParseProgram(Isolate* isolate, ParseInfo* info) {
Scope::DeserializationMode::kIncludingVariables);
scanner_.Initialize();
- scanner_.SkipHashBang();
FunctionLiteral* result = DoParseProgram(isolate, info);
MaybeResetCharacterStream(info, result);
MaybeProcessSourceRanges(info, result, stack_limit_);
diff --git a/deps/v8/src/parsing/preparser.cc b/deps/v8/src/parsing/preparser.cc
index 67ee1930ac..c25ed2f8dd 100644
--- a/deps/v8/src/parsing/preparser.cc
+++ b/deps/v8/src/parsing/preparser.cc
@@ -74,10 +74,6 @@ PreParser::PreParseResult PreParser::PreParseProgram() {
scope->set_is_being_lazily_parsed(true);
#endif
- // Note: We should only skip the hashbang in non-Eval scripts
- // (currently, Eval is not handled by the PreParser).
- scanner()->SkipHashBang();
-
// ModuleDeclarationInstantiation for Source Text Module Records creates a
// new Module Environment Record whose outer lexical environment record is
// the global scope.
diff --git a/deps/v8/src/parsing/scanner-inl.h b/deps/v8/src/parsing/scanner-inl.h
index b76076d92f..53b53cb998 100644
--- a/deps/v8/src/parsing/scanner-inl.h
+++ b/deps/v8/src/parsing/scanner-inl.h
@@ -505,6 +505,10 @@ V8_INLINE Token::Value Scanner::ScanSingleToken() {
return ScanTemplateSpan();
case Token::PRIVATE_NAME:
+ if (source_pos() == 0 && Peek() == '!') {
+ token = SkipSingleLineComment();
+ continue;
+ }
return ScanPrivateName();
case Token::WHITESPACE:
diff --git a/deps/v8/src/parsing/scanner.cc b/deps/v8/src/parsing/scanner.cc
index 28e4374787..d444719f63 100644
--- a/deps/v8/src/parsing/scanner.cc
+++ b/deps/v8/src/parsing/scanner.cc
@@ -314,13 +314,6 @@ Token::Value Scanner::SkipMultiLineComment() {
return Token::ILLEGAL;
}
-void Scanner::SkipHashBang() {
- if (c0_ == '#' && Peek() == '!' && source_pos() == 0) {
- SkipSingleLineComment();
- Scan();
- }
-}
-
Token::Value Scanner::ScanHtmlComment() {
// Check for <!-- comments.
DCHECK_EQ(c0_, '!');
diff --git a/deps/v8/src/parsing/scanner.h b/deps/v8/src/parsing/scanner.h
index d9216f222a..871204bb55 100644
--- a/deps/v8/src/parsing/scanner.h
+++ b/deps/v8/src/parsing/scanner.h
@@ -421,9 +421,6 @@ class V8_EXPORT_PRIVATE Scanner {
const Utf16CharacterStream* stream() const { return source_; }
- // If the next characters in the stream are "#!", the line is skipped.
- void SkipHashBang();
-
private:
// Scoped helper for saving & restoring scanner error state.
// This is used for tagged template literals, in which normally forbidden
diff --git a/deps/v8/test/message/fail/hashbang-incomplete-string.js b/deps/v8/test/message/fail/hashbang-incomplete-string.js
new file mode 100644
index 0000000000..b3aab937db
--- /dev/null
+++ b/deps/v8/test/message/fail/hashbang-incomplete-string.js
@@ -0,0 +1,12 @@
+#!/usr/bin/env d8
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+//
+
+const x = 'valid code';
+
+'incomplete string
+
+const y = 'even more valid code!';
diff --git a/deps/v8/test/message/fail/hashbang-incomplete-string.out b/deps/v8/test/message/fail/hashbang-incomplete-string.out
new file mode 100644
index 0000000000..db85fe06a6
--- /dev/null
+++ b/deps/v8/test/message/fail/hashbang-incomplete-string.out
@@ -0,0 +1,5 @@
+*%(basename)s:10: SyntaxError: Invalid or unexpected token
+'incomplete string
+^^^^^^^^^^^^^^^^^^
+
+SyntaxError: Invalid or unexpected token