OLD | NEW |
1 | 1 |
2 # Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> | 2 # Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> |
3 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> | 3 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> |
4 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> | 4 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> |
5 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org> | 5 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org> |
6 # Copyright (C) 2006 Apple Computer, Inc. | 6 # Copyright (C) 2006 Apple Computer, Inc. |
7 # Copyright (C) 2007 Google Inc. | 7 # Copyright (C) 2007 Google Inc. |
8 # | 8 # |
9 # This file is part of the KDE project | 9 # This file is part of the KDE project |
10 # | 10 # |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 | 408 |
409 sub GenerateConstructorGetter | 409 sub GenerateConstructorGetter |
410 { | 410 { |
411 my $implClassName = shift; | 411 my $implClassName = shift; |
412 | 412 |
413 push(@implContentDecls, <<END); | 413 push(@implContentDecls, <<END); |
414 static v8::Handle<v8::Value> ${implClassName}ConstructorGetter(v8::Local<v8::S
tring> name, const v8::AccessorInfo& info) { | 414 static v8::Handle<v8::Value> ${implClassName}ConstructorGetter(v8::Local<v8::S
tring> name, const v8::AccessorInfo& info) { |
415 INC_STATS(\"DOM.$implClassName.constructors._get\"); | 415 INC_STATS(\"DOM.$implClassName.constructors._get\"); |
416 v8::Handle<v8::Value> data = info.Data(); | 416 v8::Handle<v8::Value> data = info.Data(); |
417 ASSERT(data->IsNumber()); | 417 ASSERT(data->IsNumber()); |
418 | |
419 V8ClassIndex::V8WrapperType type = V8ClassIndex::FromInt(data->Int32Value())
; | 418 V8ClassIndex::V8WrapperType type = V8ClassIndex::FromInt(data->Int32Value())
; |
420 | 419 DOMWindow* window = V8Proxy::ToNativeObject<DOMWindow>(V8ClassIndex::DOMWIND
OW, info.Holder()); |
| 420 Frame* frame = window->frame(); |
| 421 if (frame) { |
| 422 // Get the proxy corresponding to the DOMWindow if possible to |
| 423 // make sure that the constructor function is constructed in the |
| 424 // context of the DOMWindow and not in the context of the caller. |
| 425 return V8Proxy::retrieve(frame)->GetConstructor(type); |
| 426 } |
421 return V8Proxy::retrieve()->GetConstructor(type); | 427 return V8Proxy::retrieve()->GetConstructor(type); |
422 } | 428 } |
423 | 429 |
424 END | 430 END |
425 } | 431 } |
426 | 432 |
427 sub GenerateNormalAttrGetter | 433 sub GenerateNormalAttrGetter |
428 { | 434 { |
429 my $attribute = shift; | 435 my $attribute = shift; |
430 my $dataNode = shift; | 436 my $dataNode = shift; |
(...skipping 1647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2078 return 0; | 2084 return 0; |
2079 } | 2085 } |
2080 | 2086 |
2081 sub DebugPrint | 2087 sub DebugPrint |
2082 { | 2088 { |
2083 my $output = shift; | 2089 my $output = shift; |
2084 | 2090 |
2085 print $output; | 2091 print $output; |
2086 print "\n"; | 2092 print "\n"; |
2087 } | 2093 } |
OLD | NEW |