| OLD | NEW |
| 1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2017 The Chromium 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 NativeValueTraitsImpl_h | 5 #ifndef NativeValueTraitsImpl_h |
| 6 #define NativeValueTraitsImpl_h | 6 #define NativeValueTraitsImpl_h |
| 7 | 7 |
| 8 #include "bindings/core/v8/IDLTypes.h" | 8 #include "bindings/core/v8/IDLTypes.h" |
| 9 #include "bindings/core/v8/NativeValueTraits.h" | 9 #include "bindings/core/v8/NativeValueTraits.h" |
| 10 #include "bindings/core/v8/V8Binding.h" | 10 #include "bindings/core/v8/V8Binding.h" |
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 .ToLocal(&desc)) { | 368 .ToLocal(&desc)) { |
| 369 exceptionState.rethrowV8Exception(block.Exception()); | 369 exceptionState.rethrowV8Exception(block.Exception()); |
| 370 return ImplType(); | 370 return ImplType(); |
| 371 } | 371 } |
| 372 | 372 |
| 373 // "4.2. If desc is not undefined and desc.[[Enumerable]] is true:" | 373 // "4.2. If desc is not undefined and desc.[[Enumerable]] is true:" |
| 374 // We can call ToLocalChecked() and ToChecked() here because | 374 // We can call ToLocalChecked() and ToChecked() here because |
| 375 // GetOwnPropertyDescriptor is responsible for catching any exceptions | 375 // GetOwnPropertyDescriptor is responsible for catching any exceptions |
| 376 // and failures, and if we got to this point of the code we have a proper | 376 // and failures, and if we got to this point of the code we have a proper |
| 377 // object that was not created by a user. | 377 // object that was not created by a user. |
| 378 if (desc->IsUndefined()) |
| 379 continue; |
| 378 DCHECK(desc->IsObject()); | 380 DCHECK(desc->IsObject()); |
| 379 v8::Local<v8::Value> enumerable = | 381 v8::Local<v8::Value> enumerable = |
| 380 v8::Local<v8::Object>::Cast(desc) | 382 v8::Local<v8::Object>::Cast(desc) |
| 381 ->Get(context, v8String(isolate, "enumerable")) | 383 ->Get(context, v8String(isolate, "enumerable")) |
| 382 .ToLocalChecked(); | 384 .ToLocalChecked(); |
| 383 if (!enumerable->BooleanValue(context).ToChecked()) | 385 if (!enumerable->BooleanValue(context).ToChecked()) |
| 384 continue; | 386 continue; |
| 385 | 387 |
| 386 // "4.2.1. Let typedKey be key converted to an IDL value of type K." | 388 // "4.2.1. Let typedKey be key converted to an IDL value of type K." |
| 387 String typedKey = | 389 String typedKey = |
| (...skipping 30 matching lines...) Expand all Loading... |
| 418 } | 420 } |
| 419 } | 421 } |
| 420 // "5. Return result." | 422 // "5. Return result." |
| 421 return result; | 423 return result; |
| 422 } | 424 } |
| 423 }; | 425 }; |
| 424 | 426 |
| 425 } // namespace blink | 427 } // namespace blink |
| 426 | 428 |
| 427 #endif // NativeValueTraitsImpl_h | 429 #endif // NativeValueTraitsImpl_h |
| OLD | NEW |