| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/parser.h" | 5 #include "vm/parser.h" |
| 6 #include "vm/flags.h" | 6 #include "vm/flags.h" |
| 7 | 7 |
| 8 #ifndef DART_PRECOMPILED_RUNTIME | 8 #ifndef DART_PRECOMPILED_RUNTIME |
| 9 | 9 |
| 10 #include "lib/invocation_mirror.h" | 10 #include "lib/invocation_mirror.h" |
| (...skipping 5904 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5915 hide_names = Array::MakeArray(hide_list); | 5915 hide_names = Array::MakeArray(hide_list); |
| 5916 } | 5916 } |
| 5917 } | 5917 } |
| 5918 ExpectSemicolon(); | 5918 ExpectSemicolon(); |
| 5919 | 5919 |
| 5920 // Canonicalize library URL. | 5920 // Canonicalize library URL. |
| 5921 const String& canon_url = String::CheckedHandle( | 5921 const String& canon_url = String::CheckedHandle( |
| 5922 CallLibraryTagHandler(Dart_kCanonicalizeUrl, import_pos, url)); | 5922 CallLibraryTagHandler(Dart_kCanonicalizeUrl, import_pos, url)); |
| 5923 | 5923 |
| 5924 // Create a new library if it does not exist yet. | 5924 // Create a new library if it does not exist yet. |
| 5925 Library& library = Library::Handle(Z, Library::LookupLibrary(canon_url)); | 5925 Library& library = Library::Handle(Z, Library::LookupLibrary(T, canon_url)); |
| 5926 if (library.IsNull()) { | 5926 if (library.IsNull()) { |
| 5927 library = Library::New(canon_url); | 5927 library = Library::New(canon_url); |
| 5928 library.Register(); | 5928 library.Register(T); |
| 5929 } | 5929 } |
| 5930 | 5930 |
| 5931 // If loading hasn't been requested yet, and if this is not a deferred | 5931 // If loading hasn't been requested yet, and if this is not a deferred |
| 5932 // library import, call the library tag handler to request loading | 5932 // library import, call the library tag handler to request loading |
| 5933 // the library. | 5933 // the library. |
| 5934 if (library.LoadNotStarted() && | 5934 if (library.LoadNotStarted() && |
| 5935 (!is_deferred_import || FLAG_load_deferred_eagerly)) { | 5935 (!is_deferred_import || FLAG_load_deferred_eagerly)) { |
| 5936 library.SetLoadRequested(); | 5936 library.SetLoadRequested(); |
| 5937 CallLibraryTagHandler(Dart_kImportTag, import_pos, canon_url); | 5937 CallLibraryTagHandler(Dart_kImportTag, import_pos, canon_url); |
| 5938 } | 5938 } |
| (...skipping 6052 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11991 static uword Hash(const Object& obj) { | 11991 static uword Hash(const Object& obj) { |
| 11992 const Array& key = Array::Cast(obj); | 11992 const Array& key = Array::Cast(obj); |
| 11993 intptr_t url_hash = String::HashRawSymbol(String::RawCast(key.At(0))); | 11993 intptr_t url_hash = String::HashRawSymbol(String::RawCast(key.At(0))); |
| 11994 intptr_t pos = Smi::Value(Smi::RawCast(key.At(1))); | 11994 intptr_t pos = Smi::Value(Smi::RawCast(key.At(1))); |
| 11995 return HashValue(url_hash, pos); | 11995 return HashValue(url_hash, pos); |
| 11996 } | 11996 } |
| 11997 static uword Hash(const ConstantPosKey& key) { | 11997 static uword Hash(const ConstantPosKey& key) { |
| 11998 return HashValue(String::HashRawSymbol(key.script_url.raw()), | 11998 return HashValue(String::HashRawSymbol(key.script_url.raw()), |
| 11999 key.token_pos.value()); | 11999 key.token_pos.value()); |
| 12000 } | 12000 } |
| 12001 // Used by CachConstantValue if a new constant is added to the map. | 12001 // Used by CacheConstantValue if a new constant is added to the map. |
| 12002 static RawObject* NewKey(const ConstantPosKey& key) { | 12002 static RawObject* NewKey(const ConstantPosKey& key) { |
| 12003 const Array& key_obj = Array::Handle(Array::New(2)); | 12003 const Array& key_obj = Array::Handle(Array::New(2)); |
| 12004 key_obj.SetAt(0, key.script_url); | 12004 key_obj.SetAt(0, key.script_url); |
| 12005 key_obj.SetAt(1, Smi::Handle(Smi::New(key.token_pos.value()))); | 12005 key_obj.SetAt(1, Smi::Handle(Smi::New(key.token_pos.value()))); |
| 12006 return key_obj.raw();; | 12006 return key_obj.raw();; |
| 12007 } | 12007 } |
| 12008 | 12008 |
| 12009 private: | 12009 private: |
| 12010 static uword HashValue(intptr_t url_hash, intptr_t pos) { | 12010 static uword HashValue(intptr_t url_hash, intptr_t pos) { |
| 12011 return url_hash * pos % (Smi::kMaxValue - 13); | 12011 return url_hash * pos % (Smi::kMaxValue - 13); |
| (...skipping 2471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14483 const ArgumentListNode& function_args, | 14483 const ArgumentListNode& function_args, |
| 14484 const LocalVariable* temp_for_last_arg, | 14484 const LocalVariable* temp_for_last_arg, |
| 14485 bool is_super_invocation) { | 14485 bool is_super_invocation) { |
| 14486 UNREACHABLE(); | 14486 UNREACHABLE(); |
| 14487 return NULL; | 14487 return NULL; |
| 14488 } | 14488 } |
| 14489 | 14489 |
| 14490 } // namespace dart | 14490 } // namespace dart |
| 14491 | 14491 |
| 14492 #endif // DART_PRECOMPILED_RUNTIME | 14492 #endif // DART_PRECOMPILED_RUNTIME |
| OLD | NEW |