OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "config.h" | 5 #include "config.h" |
6 #include "bindings/core/v8/ScriptPromiseProperty.h" | 6 #include "bindings/core/v8/ScriptPromiseProperty.h" |
7 | 7 |
8 #include "bindings/core/v8/DOMWrapperWorld.h" | 8 #include "bindings/core/v8/DOMWrapperWorld.h" |
9 #include "bindings/core/v8/ScriptFunction.h" | 9 #include "bindings/core/v8/ScriptFunction.h" |
10 #include "bindings/core/v8/ScriptPromise.h" | 10 #include "bindings/core/v8/ScriptPromise.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 #include "wtf/RefPtr.h" | 25 #include "wtf/RefPtr.h" |
26 #include <gtest/gtest.h> | 26 #include <gtest/gtest.h> |
27 #include <v8.h> | 27 #include <v8.h> |
28 | 28 |
29 using namespace blink; | 29 using namespace blink; |
30 | 30 |
31 namespace { | 31 namespace { |
32 | 32 |
33 class NotReached : public ScriptFunction { | 33 class NotReached : public ScriptFunction { |
34 public: | 34 public: |
35 static v8::Handle<v8::Function> createFunction(ScriptState* scriptState) | 35 static v8::Local<v8::Function> createFunction(ScriptState* scriptState) |
36 { | 36 { |
37 NotReached* self = new NotReached(scriptState); | 37 NotReached* self = new NotReached(scriptState); |
38 return self->bindToV8Function(); | 38 return self->bindToV8Function(); |
39 } | 39 } |
40 | 40 |
41 private: | 41 private: |
42 explicit NotReached(ScriptState* scriptState) | 42 explicit NotReached(ScriptState* scriptState) |
43 : ScriptFunction(scriptState) | 43 : ScriptFunction(scriptState) |
44 { | 44 { |
45 } | 45 } |
46 | 46 |
47 virtual ScriptValue call(ScriptValue) override; | 47 virtual ScriptValue call(ScriptValue) override; |
48 }; | 48 }; |
49 | 49 |
50 ScriptValue NotReached::call(ScriptValue) | 50 ScriptValue NotReached::call(ScriptValue) |
51 { | 51 { |
52 EXPECT_TRUE(false) << "'Unreachable' code was reached"; | 52 EXPECT_TRUE(false) << "'Unreachable' code was reached"; |
53 return ScriptValue(); | 53 return ScriptValue(); |
54 } | 54 } |
55 | 55 |
56 class StubFunction : public ScriptFunction { | 56 class StubFunction : public ScriptFunction { |
57 public: | 57 public: |
58 static v8::Handle<v8::Function> createFunction(ScriptState* scriptState, Scr
iptValue& value, size_t& callCount) | 58 static v8::Local<v8::Function> createFunction(ScriptState* scriptState, Scri
ptValue& value, size_t& callCount) |
59 { | 59 { |
60 StubFunction* self = new StubFunction(scriptState, value, callCount); | 60 StubFunction* self = new StubFunction(scriptState, value, callCount); |
61 return self->bindToV8Function(); | 61 return self->bindToV8Function(); |
62 } | 62 } |
63 | 63 |
64 private: | 64 private: |
65 StubFunction(ScriptState* scriptState, ScriptValue& value, size_t& callCount
) | 65 StubFunction(ScriptState* scriptState, ScriptValue& value, size_t& callCount
) |
66 : ScriptFunction(scriptState) | 66 : ScriptFunction(scriptState) |
67 , m_value(value) | 67 , m_value(value) |
68 , m_callCount(callCount) | 68 , m_callCount(callCount) |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 virtual void destroyContext() | 147 virtual void destroyContext() |
148 { | 148 { |
149 m_page.clear(); | 149 m_page.clear(); |
150 m_otherScriptState.clear(); | 150 m_otherScriptState.clear(); |
151 gc(); | 151 gc(); |
152 Heap::collectGarbage(ThreadState::HeapPointersOnStack, ThreadState::GCWi
thSweep, Heap::ForcedGC); | 152 Heap::collectGarbage(ThreadState::HeapPointersOnStack, ThreadState::GCWi
thSweep, Heap::ForcedGC); |
153 } | 153 } |
154 | 154 |
155 void gc() { V8GCController::collectGarbage(v8::Isolate::GetCurrent()); } | 155 void gc() { V8GCController::collectGarbage(v8::Isolate::GetCurrent()); } |
156 | 156 |
157 v8::Handle<v8::Function> notReached(ScriptState* scriptState) { return NotRe
ached::createFunction(scriptState); } | 157 v8::Local<v8::Function> notReached(ScriptState* scriptState) { return NotRea
ched::createFunction(scriptState); } |
158 v8::Handle<v8::Function> stub(ScriptState* scriptState, ScriptValue& value,
size_t& callCount) { return StubFunction::createFunction(scriptState, value, cal
lCount); } | 158 v8::Local<v8::Function> stub(ScriptState* scriptState, ScriptValue& value, s
ize_t& callCount) { return StubFunction::createFunction(scriptState, value, call
Count); } |
159 | 159 |
160 template <typename T> | 160 template <typename T> |
161 ScriptValue wrap(DOMWrapperWorld& world, const T& value) | 161 ScriptValue wrap(DOMWrapperWorld& world, const T& value) |
162 { | 162 { |
163 v8::HandleScope handleScope(isolate()); | 163 v8::HandleScope handleScope(isolate()); |
164 ScriptState* scriptState = ScriptState::from(toV8Context(&document(), wo
rld)); | 164 ScriptState* scriptState = ScriptState::from(toV8Context(&document(), wo
rld)); |
165 ScriptState::Scope scope(scriptState); | 165 ScriptState::Scope scope(scriptState); |
166 return ScriptValue(scriptState, toV8(value, scriptState->context()->Glob
al(), isolate())); | 166 return ScriptValue(scriptState, toV8(value, scriptState->context()->Glob
al(), isolate())); |
167 } | 167 } |
168 | 168 |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 { | 546 { |
547 test(String("hello"), "hello", __FILE__, __LINE__); | 547 test(String("hello"), "hello", __FILE__, __LINE__); |
548 } | 548 } |
549 | 549 |
550 TEST_F(ScriptPromisePropertyNonScriptWrappableResolutionTargetTest, ResolveWithI
nteger) | 550 TEST_F(ScriptPromisePropertyNonScriptWrappableResolutionTargetTest, ResolveWithI
nteger) |
551 { | 551 { |
552 test(-1, "-1", __FILE__, __LINE__); | 552 test(-1, "-1", __FILE__, __LINE__); |
553 } | 553 } |
554 | 554 |
555 } // namespace | 555 } // namespace |
OLD | NEW |