| Index: src/harmony-templates.js
|
| diff --git a/src/harmony-templates.js b/src/harmony-templates.js
|
| deleted file mode 100644
|
| index 254f434fdfe0e6eb75a268b8774c6fa7a49b261e..0000000000000000000000000000000000000000
|
| --- a/src/harmony-templates.js
|
| +++ /dev/null
|
| @@ -1,94 +0,0 @@
|
| -// 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";
|
| -
|
| -var callSiteCache = new $Map;
|
| -
|
| -function SameCallSiteElements(rawStrings, other) {
|
| - var length = rawStrings.length;
|
| - var other = other.raw;
|
| -
|
| - if (length !== other.length) return false;
|
| -
|
| - for (var i = 0; i < length; ++i) {
|
| - if (rawStrings[i] !== other[i]) return false;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -
|
| -function GetCachedCallSite(siteObj, hash) {
|
| - var obj = %MapGet(callSiteCache, hash);
|
| -
|
| - if (IS_UNDEFINED(obj)) return;
|
| -
|
| - var length = obj.length;
|
| - for (var i = 0; i < length; ++i) {
|
| - if (SameCallSiteElements(siteObj, obj[i])) return obj[i];
|
| - }
|
| -}
|
| -
|
| -
|
| -function SetCachedCallSite(siteObj, hash) {
|
| - var obj = %MapGet(callSiteCache, hash);
|
| - var array;
|
| -
|
| - if (IS_UNDEFINED(obj)) {
|
| - array = new InternalArray(1);
|
| - array[0] = siteObj;
|
| - %MapSet(callSiteCache, hash, array);
|
| - } else {
|
| - obj.push(siteObj);
|
| - }
|
| -
|
| - return siteObj;
|
| -}
|
| -
|
| -
|
| -function GetTemplateCallSite(siteObj, rawStrings, hash) {
|
| - var cached = GetCachedCallSite(rawStrings, hash);
|
| -
|
| - if (!IS_UNDEFINED(cached)) return cached;
|
| -
|
| - %AddNamedProperty(siteObj, "raw", %ObjectFreeze(rawStrings),
|
| - READ_ONLY | DONT_ENUM | DONT_DELETE);
|
| -
|
| - return SetCachedCallSite(%ObjectFreeze(siteObj), hash);
|
| -}
|
| -
|
| -
|
| -// ES6 Draft 10-14-2014, section 21.1.2.4
|
| -function StringRaw(callSite) {
|
| - // TODO(caitp): Use rest parameters when implemented
|
| - var numberOfSubstitutions = %_ArgumentsLength();
|
| - var cooked = ToObject(callSite);
|
| - var raw = ToObject(cooked.raw);
|
| - var literalSegments = ToLength(raw.length);
|
| - if (literalSegments <= 0) return "";
|
| -
|
| - var result = ToString(raw[0]);
|
| -
|
| - for (var i = 1; i < literalSegments; ++i) {
|
| - if (i < numberOfSubstitutions) {
|
| - result += ToString(%_Arguments(i));
|
| - }
|
| - result += ToString(raw[i]);
|
| - }
|
| -
|
| - return result;
|
| -}
|
| -
|
| -
|
| -function ExtendStringForTemplates() {
|
| - %CheckIsBootstrapping();
|
| -
|
| - // Set up the non-enumerable functions on the String object.
|
| - InstallFunctions($String, DONT_ENUM, $Array(
|
| - "raw", StringRaw
|
| - ));
|
| -}
|
| -
|
| -ExtendStringForTemplates();
|
|
|