Index: src/harmony-templates.js |
diff --git a/src/harmony-templates.js b/src/harmony-templates.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f7b725b736bc67be671898ebc73f4586226da525 |
--- /dev/null |
+++ b/src/harmony-templates.js |
@@ -0,0 +1,40 @@ |
+// Copyright 2014 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+'use strict'; |
+ |
+function GetTemplateCallSite(cookedStrings, rawStrings) { |
+ // TODO(caitp): ensure same template callsite is used for subsequent tag calls |
+ var count = cookedStrings.length; |
+ var siteObj = new $Array(count); |
+ var rawObj = new $Array(count); |
+ |
+ var index = 0; |
+ for (; index < count; ++index) { |
+ var cookedValue = cookedStrings[index]; |
+ DefineArrayProperty(siteObj, ToString(index), ToPropertyDescriptor({ |
+ value: cookedValue, |
+ configurable: false, |
+ writable: false, |
+ enumerable: true |
+ }), false); |
+ var rawValue = rawStrings[index]; |
+ DefineArrayProperty(rawObj, ToString(index), ToPropertyDescriptor({ |
+ value: rawValue, |
+ configurable: false, |
+ writable: false, |
+ enumerable: true |
+ }), false); |
+ } |
+ |
+ |
+ DefineObjectProperty(siteObj, "raw", ToPropertyDescriptor({ |
+ value: %ObjectFreeze(rawObj), |
+ configurable: false, |
+ writable: false, |
+ enumerable: false |
+ }), false); |
+ |
+ return %ObjectFreeze(siteObj); |
+} |