Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 79 type var; \ | 79 type var; \ |
| 80 { \ | 80 { \ |
| 81 v8::TryCatch block; \ | 81 v8::TryCatch block; \ |
| 82 var = (value); \ | 82 var = (value); \ |
| 83 if (UNLIKELY(block.HasCaught())) \ | 83 if (UNLIKELY(block.HasCaught())) \ |
| 84 exceptionState.rethrowV8Exception(block.Exception()); \ | 84 exceptionState.rethrowV8Exception(block.Exception()); \ |
| 85 if (UNLIKELY(exceptionState.throwIfNeeded())) \ | 85 if (UNLIKELY(exceptionState.throwIfNeeded())) \ |
| 86 return; \ | 86 return; \ |
| 87 } | 87 } |
| 88 | 88 |
| 89 #define V8TRYCATCH_VOID_PROMISE(type, var, value, info) \ | |
| 90 type var; \ | |
| 91 { \ | |
| 92 v8::TryCatch block; \ | |
| 93 var = (value); \ | |
| 94 if (UNLIKELY(block.HasCaught())) { \ | |
| 95 v8::Isolate* isolate = info.GetIsolate(); \ | |
| 96 ScriptPromise promise = ScriptPromise::reject(block.Exception(), iso late); \ | |
| 97 v8SetReturnValue(info, promise.v8Value()); \ | |
| 98 return; \ | |
| 99 } \ | |
| 100 } | |
| 101 | |
| 102 #define V8TRYCATCH_EXCEPTION_VOID_PROMISE(type, var, value, info, exceptionState ) \ | |
|
haraken
2014/04/10 12:09:17
The macro names in this file are getting broken...
Nils Barth (inactive)
2014/04/11 01:03:41
I'll grab this.
My suggestion:
V8TRYCATCH[_TYPE][
Nils Barth (inactive)
2014/04/11 02:19:38
Posted:
Rename V8TRYCATCH_* macros in v8/V8Binding
yhirano
2014/04/11 10:19:04
Done.
| |
| 103 type var; \ | |
| 104 { \ | |
| 105 v8::TryCatch block; \ | |
| 106 var = (value); \ | |
| 107 v8::Isolate* isolate = info.GetIsolate(); \ | |
| 108 if (UNLIKELY(block.HasCaught())) \ | |
| 109 exceptionState.rethrowV8Exception(block.Exception()); \ | |
| 110 if (UNLIKELY(exceptionState.hadException())) { \ | |
|
haraken
2014/04/10 12:09:17
Shouldn't this be exceptionState.throwIfNeeded()?
yhirano
2014/04/11 10:19:04
What I want to do is returning a Promise rejected
| |
| 111 v8SetReturnValue(info, exceptionState.rejectedPromise().v8Value()); \ | |
| 112 return; \ | |
| 113 } \ | |
| 114 } | |
| 115 | |
| 89 #define V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(type, var, value, retVal) \ | 116 #define V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(type, var, value, retVal) \ |
| 90 type var(value); \ | 117 type var(value); \ |
| 91 if (UNLIKELY(!var.prepare())) \ | 118 if (UNLIKELY(!var.prepare())) \ |
| 92 return retVal; | 119 return retVal; |
| 93 | 120 |
| 94 #define V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(type, var, value) \ | 121 #define V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(type, var, value) \ |
| 95 type var(value); \ | 122 type var(value); \ |
| 96 if (UNLIKELY(!var.prepare())) \ | 123 if (UNLIKELY(!var.prepare())) \ |
| 97 return; | 124 return; |
| 98 | 125 |
| 126 #define V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID_PROMISE(type, var, value, info) \ | |
| 127 type var(value); \ | |
| 128 { \ | |
| 129 v8::TryCatch block; \ | |
| 130 var.prepare(); \ | |
| 131 if (UNLIKELY(block.HasCaught())) { \ | |
| 132 v8::Isolate* isolate = info.GetIsolate(); \ | |
| 133 ScriptPromise promise = ScriptPromise::reject(block.Exception(), iso late); \ | |
| 134 v8SetReturnValue(info, promise.v8Value()); \ | |
| 135 return; \ | |
| 136 } \ | |
| 137 } | |
| 138 | |
| 99 } // namespace WebCore | 139 } // namespace WebCore |
| 100 | 140 |
| 101 #endif // V8BindingMacros_h | 141 #endif // V8BindingMacros_h |
| OLD | NEW |