OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2011 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 22 matching lines...) Expand all Loading... |
33 #include "bindings/core/v8/ScriptState.h" | 33 #include "bindings/core/v8/ScriptState.h" |
34 #include "bindings/core/v8/SerializedScriptValueFactory.h" | 34 #include "bindings/core/v8/SerializedScriptValueFactory.h" |
35 #include "bindings/core/v8/V8Binding.h" | 35 #include "bindings/core/v8/V8Binding.h" |
36 | 36 |
37 namespace blink { | 37 namespace blink { |
38 | 38 |
39 v8::Local<v8::Value> ScriptValue::V8Value() const { | 39 v8::Local<v8::Value> ScriptValue::V8Value() const { |
40 if (IsEmpty()) | 40 if (IsEmpty()) |
41 return v8::Local<v8::Value>(); | 41 return v8::Local<v8::Value>(); |
42 | 42 |
43 ASSERT(GetIsolate()->InContext()); | 43 DCHECK(GetIsolate()->InContext()); |
44 | 44 |
45 // This is a check to validate that you don't return a ScriptValue to a world | 45 // This is a check to validate that you don't return a ScriptValue to a world |
46 // different from the world that created the ScriptValue. | 46 // different from the world that created the ScriptValue. |
47 // Probably this could be: | 47 // Probably this could be: |
48 // if (&m_scriptState->world() == &DOMWrapperWorld::current(isolate())) | 48 // if (&m_scriptState->world() == &DOMWrapperWorld::current(isolate())) |
49 // return v8::Local<v8::Value>(); | 49 // return v8::Local<v8::Value>(); |
50 // instead of triggering RELEASE_ASSERT. | 50 // instead of triggering RELEASE_ASSERT. |
51 RELEASE_ASSERT(&script_state_->World() == | 51 CHECK_EQ(&script_state_->World(), &DOMWrapperWorld::Current(GetIsolate())); |
52 &DOMWrapperWorld::Current(GetIsolate())); | |
53 return value_->NewLocal(GetIsolate()); | 52 return value_->NewLocal(GetIsolate()); |
54 } | 53 } |
55 | 54 |
56 v8::Local<v8::Value> ScriptValue::V8ValueFor( | 55 v8::Local<v8::Value> ScriptValue::V8ValueFor( |
57 ScriptState* target_script_state) const { | 56 ScriptState* target_script_state) const { |
58 if (IsEmpty()) | 57 if (IsEmpty()) |
59 return v8::Local<v8::Value>(); | 58 return v8::Local<v8::Value>(); |
60 v8::Isolate* isolate = target_script_state->GetIsolate(); | 59 v8::Isolate* isolate = target_script_state->GetIsolate(); |
61 if (&script_state_->World() == &target_script_state->World()) | 60 if (&script_state_->World() == &target_script_state->World()) |
62 return value_->NewLocal(isolate); | 61 return value_->NewLocal(isolate); |
63 | 62 |
64 ASSERT(isolate->InContext()); | 63 DCHECK(isolate->InContext()); |
65 v8::Local<v8::Value> value = value_->NewLocal(isolate); | 64 v8::Local<v8::Value> value = value_->NewLocal(isolate); |
66 RefPtr<SerializedScriptValue> serialized = | 65 RefPtr<SerializedScriptValue> serialized = |
67 SerializedScriptValue::SerializeAndSwallowExceptions(isolate, value); | 66 SerializedScriptValue::SerializeAndSwallowExceptions(isolate, value); |
68 return serialized->Deserialize(isolate); | 67 return serialized->Deserialize(isolate); |
69 } | 68 } |
70 | 69 |
71 bool ScriptValue::ToString(String& result) const { | 70 bool ScriptValue::ToString(String& result) const { |
72 if (IsEmpty()) | 71 if (IsEmpty()) |
73 return false; | 72 return false; |
74 | 73 |
75 ScriptState::Scope scope(script_state_.Get()); | 74 ScriptState::Scope scope(script_state_.Get()); |
76 v8::Local<v8::Value> string = V8Value(); | 75 v8::Local<v8::Value> string = V8Value(); |
77 if (string.IsEmpty() || !string->IsString()) | 76 if (string.IsEmpty() || !string->IsString()) |
78 return false; | 77 return false; |
79 result = ToCoreString(v8::Local<v8::String>::Cast(string)); | 78 result = ToCoreString(v8::Local<v8::String>::Cast(string)); |
80 return true; | 79 return true; |
81 } | 80 } |
82 | 81 |
83 ScriptValue ScriptValue::CreateNull(ScriptState* script_state) { | 82 ScriptValue ScriptValue::CreateNull(ScriptState* script_state) { |
84 return ScriptValue(script_state, v8::Null(script_state->GetIsolate())); | 83 return ScriptValue(script_state, v8::Null(script_state->GetIsolate())); |
85 } | 84 } |
86 | 85 |
87 } // namespace blink | 86 } // namespace blink |
OLD | NEW |