summaryrefslogtreecommitdiff
path: root/fxjs/cjs_result.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-08-17 19:28:52 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-08-17 19:28:52 +0000
commit3a6d058740a9908a06efb9e9362df01acdee6ff8 (patch)
tree9bc645b0cb3442749458fc63e2feb04c0cb813ef /fxjs/cjs_result.h
parent0a2328e0eff7a11aa49b7da8f013e658153a7b1a (diff)
downloadpdfium-3a6d058740a9908a06efb9e9362df01acdee6ff8.tar.xz
Rename CJS_Return to CJS_Result.
"Return" is a verb, and "return" is a reserved-word at that, so avoid using it as part of a class name. Fully mechanical change apart from rename. Change-Id: I120e453e8ba001c4ab74a39e2da6aa6eb590835f Reviewed-on: https://pdfium-review.googlesource.com/40532 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxjs/cjs_result.h')
-rw-r--r--fxjs/cjs_result.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/fxjs/cjs_result.h b/fxjs/cjs_result.h
new file mode 100644
index 0000000000..dc65d18c73
--- /dev/null
+++ b/fxjs/cjs_result.h
@@ -0,0 +1,57 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef FXJS_CJS_RESULT_H_
+#define FXJS_CJS_RESULT_H_
+
+#include "fxjs/cfxjs_engine.h"
+#include "fxjs/js_resources.h"
+#include "third_party/base/optional.h"
+
+class CJS_Result {
+ public:
+ // Wrap constructors with static methods so we can apply WARN_UNUSED_RESULT,
+ // otherwise we can't catch places where someone mistakenly writes:
+ //
+ // if (error)
+ // CJS_Result(JS_ERROR_CODE);
+ //
+ // instead of
+ //
+ // if (error)
+ // return CJS_Result(JS_ERROR_CODE);
+ //
+ static CJS_Result Success() WARN_UNUSED_RESULT { return CJS_Result(); }
+ static CJS_Result Success(v8::Local<v8::Value> value) WARN_UNUSED_RESULT {
+ return CJS_Result(value);
+ }
+ static CJS_Result Failure(const WideString& str) WARN_UNUSED_RESULT {
+ return CJS_Result(str);
+ }
+ static CJS_Result Failure(JSMessage id) WARN_UNUSED_RESULT {
+ return CJS_Result(id);
+ }
+
+ CJS_Result(const CJS_Result&);
+ ~CJS_Result();
+
+ bool HasError() const { return error_.has_value(); }
+ WideString Error() const { return error_.value(); }
+
+ bool HasReturn() const { return !return_.IsEmpty(); }
+ v8::Local<v8::Value> Return() const { return return_; }
+
+ private:
+ CJS_Result(); // Successful but empty return.
+ explicit CJS_Result(v8::Local<v8::Value>); // Successful return with value.
+ explicit CJS_Result(const WideString&); // Error with custom message.
+ explicit CJS_Result(JSMessage id); // Error with stock message.
+
+ Optional<WideString> error_;
+ v8::Local<v8::Value> return_;
+};
+
+#endif // FXJS_CJS_RESULT_H_