| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 1209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1220 | 1220 |
| 1221 // Initialize the data slot. | 1221 // Initialize the data slot. |
| 1222 global_context()->set_data(heap->undefined_value()); | 1222 global_context()->set_data(heap->undefined_value()); |
| 1223 } | 1223 } |
| 1224 | 1224 |
| 1225 | 1225 |
| 1226 void Genesis::InitializeExperimentalGlobal() { | 1226 void Genesis::InitializeExperimentalGlobal() { |
| 1227 Handle<JSObject> global = Handle<JSObject>(global_context()->global()); | 1227 Handle<JSObject> global = Handle<JSObject>(global_context()->global()); |
| 1228 | 1228 |
| 1229 // TODO(mstarzinger): Move this into Genesis::InitializeGlobal once we no | 1229 // TODO(mstarzinger): Move this into Genesis::InitializeGlobal once we no |
| 1230 // longer need to live behind a flag, so WeakMap gets added to the snapshot. | 1230 // longer need to live behind a flag, so functions get added to the snapshot. |
| 1231 if (FLAG_harmony_weakmaps) { // -- W e a k M a p | 1231 if (FLAG_harmony_collections) { |
| 1232 Handle<JSObject> prototype = | 1232 { // -- S e t |
| 1233 factory()->NewJSObject(isolate()->object_function(), TENURED); | 1233 Handle<JSObject> prototype = |
| 1234 InstallFunction(global, "WeakMap", JS_WEAK_MAP_TYPE, JSWeakMap::kSize, | 1234 factory()->NewJSObject(isolate()->object_function(), TENURED); |
| 1235 prototype, Builtins::kIllegal, true); | 1235 InstallFunction(global, "Set", JS_SET_TYPE, JSSet::kSize, |
| 1236 prototype, Builtins::kIllegal, true); |
| 1237 } |
| 1238 { // -- M a p |
| 1239 Handle<JSObject> prototype = |
| 1240 factory()->NewJSObject(isolate()->object_function(), TENURED); |
| 1241 InstallFunction(global, "Map", JS_MAP_TYPE, JSMap::kSize, |
| 1242 prototype, Builtins::kIllegal, true); |
| 1243 } |
| 1244 { // -- W e a k M a p |
| 1245 Handle<JSObject> prototype = |
| 1246 factory()->NewJSObject(isolate()->object_function(), TENURED); |
| 1247 InstallFunction(global, "WeakMap", JS_WEAK_MAP_TYPE, JSWeakMap::kSize, |
| 1248 prototype, Builtins::kIllegal, true); |
| 1249 } |
| 1236 } | 1250 } |
| 1237 } | 1251 } |
| 1238 | 1252 |
| 1239 | 1253 |
| 1240 bool Genesis::CompileBuiltin(Isolate* isolate, int index) { | 1254 bool Genesis::CompileBuiltin(Isolate* isolate, int index) { |
| 1241 Vector<const char> name = Natives::GetScriptName(index); | 1255 Vector<const char> name = Natives::GetScriptName(index); |
| 1242 Handle<String> source_code = | 1256 Handle<String> source_code = |
| 1243 isolate->bootstrapper()->NativesSourceLookup(index); | 1257 isolate->bootstrapper()->NativesSourceLookup(index); |
| 1244 return CompileNative(name, source_code); | 1258 return CompileNative(name, source_code); |
| 1245 } | 1259 } |
| (...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1733 | 1747 |
| 1734 bool Genesis::InstallExperimentalNatives() { | 1748 bool Genesis::InstallExperimentalNatives() { |
| 1735 for (int i = ExperimentalNatives::GetDebuggerCount(); | 1749 for (int i = ExperimentalNatives::GetDebuggerCount(); |
| 1736 i < ExperimentalNatives::GetBuiltinsCount(); | 1750 i < ExperimentalNatives::GetBuiltinsCount(); |
| 1737 i++) { | 1751 i++) { |
| 1738 if (FLAG_harmony_proxies && | 1752 if (FLAG_harmony_proxies && |
| 1739 strcmp(ExperimentalNatives::GetScriptName(i).start(), | 1753 strcmp(ExperimentalNatives::GetScriptName(i).start(), |
| 1740 "native proxy.js") == 0) { | 1754 "native proxy.js") == 0) { |
| 1741 if (!CompileExperimentalBuiltin(isolate(), i)) return false; | 1755 if (!CompileExperimentalBuiltin(isolate(), i)) return false; |
| 1742 } | 1756 } |
| 1743 if (FLAG_harmony_weakmaps && | 1757 if (FLAG_harmony_collections && |
| 1744 strcmp(ExperimentalNatives::GetScriptName(i).start(), | 1758 strcmp(ExperimentalNatives::GetScriptName(i).start(), |
| 1745 "native weakmap.js") == 0) { | 1759 "native collection.js") == 0) { |
| 1746 if (!CompileExperimentalBuiltin(isolate(), i)) return false; | 1760 if (!CompileExperimentalBuiltin(isolate(), i)) return false; |
| 1747 } | 1761 } |
| 1748 } | 1762 } |
| 1749 | 1763 |
| 1750 InstallExperimentalNativeFunctions(); | 1764 InstallExperimentalNativeFunctions(); |
| 1751 | 1765 |
| 1752 return true; | 1766 return true; |
| 1753 } | 1767 } |
| 1754 | 1768 |
| 1755 | 1769 |
| (...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2267 return from + sizeof(NestingCounterType); | 2281 return from + sizeof(NestingCounterType); |
| 2268 } | 2282 } |
| 2269 | 2283 |
| 2270 | 2284 |
| 2271 // Called when the top-level V8 mutex is destroyed. | 2285 // Called when the top-level V8 mutex is destroyed. |
| 2272 void Bootstrapper::FreeThreadResources() { | 2286 void Bootstrapper::FreeThreadResources() { |
| 2273 ASSERT(!IsActive()); | 2287 ASSERT(!IsActive()); |
| 2274 } | 2288 } |
| 2275 | 2289 |
| 2276 } } // namespace v8::internal | 2290 } } // namespace v8::internal |
| OLD | NEW |