| Index: src/apinatives.js
|
| diff --git a/src/apinatives.js b/src/apinatives.js
|
| deleted file mode 100644
|
| index 3e38d100358041fe50536bf4523592ad311fe430..0000000000000000000000000000000000000000
|
| --- a/src/apinatives.js
|
| +++ /dev/null
|
| @@ -1,119 +0,0 @@
|
| -// Copyright 2006-2008 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";
|
| -
|
| -// This file contains infrastructure used by the API. See
|
| -// v8natives.js for an explanation of these files are processed and
|
| -// loaded.
|
| -
|
| -
|
| -function CreateDate(time) {
|
| - var date = new $Date();
|
| - date.setTime(time);
|
| - return date;
|
| -}
|
| -
|
| -
|
| -var kApiFunctionCache = new InternalArray();
|
| -var functionCache = kApiFunctionCache;
|
| -
|
| -
|
| -function Instantiate(data, name) {
|
| - if (!%IsTemplate(data)) return data;
|
| - var tag = %GetTemplateField(data, kApiTagOffset);
|
| - switch (tag) {
|
| - case kFunctionTag:
|
| - return InstantiateFunction(data, name);
|
| - case kNewObjectTag:
|
| - var Constructor = %GetTemplateField(data, kApiConstructorOffset);
|
| - // Note: Do not directly use a function template as a condition, our
|
| - // internal ToBoolean doesn't handle that!
|
| - var result;
|
| - if (typeof Constructor === 'undefined') {
|
| - result = {};
|
| - ConfigureTemplateInstance(result, data);
|
| - } else {
|
| - // ConfigureTemplateInstance is implicitly called before calling the API
|
| - // constructor in HandleApiCall.
|
| - result = new (Instantiate(Constructor))();
|
| - result = %ToFastProperties(result);
|
| - }
|
| - return result;
|
| - default:
|
| - throw 'Unknown API tag <' + tag + '>';
|
| - }
|
| -}
|
| -
|
| -
|
| -function InstantiateFunction(data, name) {
|
| - // We need a reference to kApiFunctionCache in the stack frame
|
| - // if we need to bail out from a stack overflow.
|
| - var cache = kApiFunctionCache;
|
| - var serialNumber = %GetTemplateField(data, kApiSerialNumberOffset);
|
| - var isFunctionCached =
|
| - (serialNumber in cache) && (cache[serialNumber] != kUninitialized);
|
| - if (!isFunctionCached) {
|
| - try {
|
| - var flags = %GetTemplateField(data, kApiFlagOffset);
|
| - var prototype;
|
| - if (!(flags & (1 << kRemovePrototypeBit))) {
|
| - var template = %GetTemplateField(data, kApiPrototypeTemplateOffset);
|
| - prototype = typeof template === 'undefined'
|
| - ? {} : Instantiate(template);
|
| -
|
| - var parent = %GetTemplateField(data, kApiParentTemplateOffset);
|
| - // Note: Do not directly use a function template as a condition, our
|
| - // internal ToBoolean doesn't handle that!
|
| - if (typeof parent !== 'undefined') {
|
| - var parent_fun = Instantiate(parent);
|
| - %InternalSetPrototype(prototype, parent_fun.prototype);
|
| - }
|
| - }
|
| - var fun = %CreateApiFunction(data, prototype);
|
| - if (IS_STRING(name)) %FunctionSetName(fun, name);
|
| - var doNotCache = flags & (1 << kDoNotCacheBit);
|
| - if (!doNotCache) cache[serialNumber] = fun;
|
| - ConfigureTemplateInstance(fun, data);
|
| - if (doNotCache) return fun;
|
| - } catch (e) {
|
| - cache[serialNumber] = kUninitialized;
|
| - throw e;
|
| - }
|
| - }
|
| - return cache[serialNumber];
|
| -}
|
| -
|
| -
|
| -function ConfigureTemplateInstance(obj, data) {
|
| - var properties = %GetTemplateField(data, kApiPropertyListOffset);
|
| - if (!properties) return;
|
| - // Disable access checks while instantiating the object.
|
| - var requires_access_checks = %DisableAccessChecks(obj);
|
| - try {
|
| - for (var i = 1; i < properties[0];) {
|
| - var length = properties[i];
|
| - if (length == 3) {
|
| - var name = properties[i + 1];
|
| - var prop_data = properties[i + 2];
|
| - var attributes = properties[i + 3];
|
| - var value = Instantiate(prop_data, name);
|
| - %AddPropertyForTemplate(obj, name, value, attributes);
|
| - } else if (length == 4 || length == 5) {
|
| - // TODO(verwaest): The 5th value used to be access_control. Remove once
|
| - // the bindings are updated.
|
| - var name = properties[i + 1];
|
| - var getter = properties[i + 2];
|
| - var setter = properties[i + 3];
|
| - var attribute = properties[i + 4];
|
| - %DefineApiAccessorProperty(obj, name, getter, setter, attribute);
|
| - } else {
|
| - throw "Bad properties array";
|
| - }
|
| - i += length + 1;
|
| - }
|
| - } finally {
|
| - if (requires_access_checks) %EnableAccessChecks(obj);
|
| - }
|
| -}
|
|
|