Changeset 230697 in webkit for trunk/Source/JavaScriptCore/jsc.cpp
- Timestamp:
- Apr 16, 2018, 7:38:59 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jsc.cpp
r229605 r230697 187 187 } 188 188 189 static bool fillBufferWithContentsOfFile(const String& fileName, Vector<char>& buffer); 189 template<typename Vector> 190 static bool fillBufferWithContentsOfFile(const String& fileName, Vector& buffer); 190 191 static RefPtr<Uint8Array> fillBufferWithContentsOfFile(const String& fileName); 191 192 … … 845 846 } 846 847 847 static void convertShebangToJSComment(Vector<char>& buffer) 848 template<typename Vector> 849 static void convertShebangToJSComment(Vector& buffer) 848 850 { 849 851 if (buffer.size() >= 2) { … … 883 885 } 884 886 885 static bool fillBufferWithContentsOfFile(FILE* file, Vector<char>& buffer) 887 template<typename Vector> 888 static bool fillBufferWithContentsOfFile(FILE* file, Vector& buffer) 886 889 { 887 890 // We might have injected "use strict"; at the top. … … 921 924 } 922 925 923 static bool fetchModuleFromLocalFileSystem(const String& fileName, Vector<char>& buffer) 926 template<typename Vector> 927 static bool fetchModuleFromLocalFileSystem(const String& fileName, Vector& buffer) 924 928 { 925 929 // We assume that fileName is always an absolute path. … … 972 976 973 977 // Here, now we consider moduleKey as the fileName. 974 Vector< char> utf8;975 if (!fetchModuleFromLocalFileSystem(moduleKey, utf8)) {978 Vector<uint8_t> buffer; 979 if (!fetchModuleFromLocalFileSystem(moduleKey, buffer)) { 976 980 auto result = deferred->reject(exec, createError(exec, makeString("Could not open file '", moduleKey, "'."))); 977 981 scope.releaseAssertNoException(); … … 979 983 } 980 984 981 auto result = deferred->resolve(exec, JSSourceCode::create(vm, makeSource(stringFromUTF(utf8), SourceOrigin { moduleKey }, moduleKey, TextPosition(), SourceProviderSourceType::Module))); 985 #if ENABLE(WEBASSEMBLY) 986 // FileSystem does not have mime-type header. The JSC shell recognizes WebAssembly's magic header. 987 if (buffer.size() >= 4) { 988 if (buffer[0] == '\0' && buffer[1] == 'a' && buffer[2] == 's' && buffer[3] == 'm') { 989 auto result = deferred->resolve(exec, JSSourceCode::create(vm, SourceCode(WebAssemblySourceProvider::create(WTFMove(buffer), SourceOrigin { moduleKey }, moduleKey)))); 990 scope.releaseAssertNoException(); 991 return result; 992 } 993 } 994 #endif 995 996 auto result = deferred->resolve(exec, JSSourceCode::create(vm, makeSource(stringFromUTF(buffer), SourceOrigin { moduleKey }, moduleKey, TextPosition(), SourceProviderSourceType::Module))); 982 997 scope.releaseAssertNoException(); 983 998 return result;
Note:
See TracChangeset
for help on using the changeset viewer.