// Copyright 2017 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. #ifndef V8_ASMJS_ASM_SCANNER_H_ #define V8_ASMJS_ASM_SCANNER_H_ #include <memory> #include <string> #include <unordered_map> #include "src/asmjs/asm-names.h" #include "src/base/logging.h" #include "src/base/strings.h" namespace v8 { namespace internal { class Utf16CharacterStream; // A custom scanner to extract the token stream needed to parse valid // asm.js: http://asmjs.org/spec/latest/ // This scanner intentionally avoids the portion of JavaScript lexing // that are not required to determine if code is valid asm.js code. // * Strings are disallowed except for 'use asm'. // * Only the subset of keywords needed to check asm.js invariants are // included. // * Identifiers are accumulated into local + global string tables // (for performance). class V8_EXPORT_PRIVATE AsmJsScanner { … }; } // namespace internal } // namespace v8 #endif // V8_ASMJS_ASM_SCANNER_H_