Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: src/wasm/wasm-result.h

Issue 2350643003: [wasm] Set up Table and Memory constructors (Closed)
Patch Set: Address comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/wasm/wasm-js.cc ('k') | src/wasm/wasm-result.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_WASM_RESULT_H_ 5 #ifndef V8_WASM_RESULT_H_
6 #define V8_WASM_RESULT_H_ 6 #define V8_WASM_RESULT_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "src/base/compiler-specific.h" 10 #include "src/base/compiler-specific.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 } 92 }
93 os << std::endl; 93 os << std::endl;
94 return os; 94 return os;
95 } 95 }
96 96
97 std::ostream& operator<<(std::ostream& os, const ErrorCode& error_code); 97 std::ostream& operator<<(std::ostream& os, const ErrorCode& error_code);
98 98
99 // A helper for generating error messages that bubble up to JS exceptions. 99 // A helper for generating error messages that bubble up to JS exceptions.
100 class ErrorThrower { 100 class ErrorThrower {
101 public: 101 public:
102 ErrorThrower(Isolate* isolate, const char* context) 102 ErrorThrower(i::Isolate* isolate, const char* context)
103 : isolate_(isolate), context_(context) {} 103 : isolate_(isolate), context_(context) {}
104 ~ErrorThrower(); 104 ~ErrorThrower();
105 105
106 PRINTF_FORMAT(2, 3) void Error(const char* fmt, ...); 106 PRINTF_FORMAT(2, 3) void Error(const char* fmt, ...);
107 PRINTF_FORMAT(2, 3) void TypeError(const char* fmt, ...);
108 PRINTF_FORMAT(2, 3) void RangeError(const char* fmt, ...);
107 109
108 template <typename T> 110 template <typename T>
109 void Failed(const char* error, Result<T>& result) { 111 void Failed(const char* error, Result<T>& result) {
110 std::ostringstream str; 112 std::ostringstream str;
111 str << error << result; 113 str << error << result;
112 return Error("%s", str.str().c_str()); 114 Error("%s", str.str().c_str());
113 } 115 }
114 116
115 i::Handle<i::String> Reify() { 117 i::Handle<i::Object> Reify() {
116 auto result = message_; 118 i::Handle<i::Object> result = exception_;
117 message_ = i::Handle<i::String>(); 119 exception_ = i::Handle<i::Object>::null();
118 return result; 120 return result;
119 } 121 }
120 122
121 bool error() const { return !message_.is_null(); } 123 bool error() const { return !exception_.is_null(); }
122 124
123 private: 125 private:
124 Isolate* isolate_; 126 void Format(i::Handle<i::JSFunction> constructor, const char* fmt, va_list);
127
128 i::Isolate* isolate_;
125 const char* context_; 129 const char* context_;
126 i::Handle<i::String> message_; 130 i::Handle<i::Object> exception_;
127 }; 131 };
128 } // namespace wasm 132 } // namespace wasm
129 } // namespace internal 133 } // namespace internal
130 } // namespace v8 134 } // namespace v8
131 135
132 #endif 136 #endif
OLDNEW
« no previous file with comments | « src/wasm/wasm-js.cc ('k') | src/wasm/wasm-result.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698