Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Unified Diff: sky/engine/bindings2/scripts/v8_utilities.py

Issue 915293003: Rename sky/engine/bindings2 to sky/engine/bindings (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: more better Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/engine/bindings2/scripts/v8_types.py ('k') | sky/engine/bindings2/snapshot.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/engine/bindings2/scripts/v8_utilities.py
diff --git a/sky/engine/bindings2/scripts/v8_utilities.py b/sky/engine/bindings2/scripts/v8_utilities.py
deleted file mode 100644
index aec0c6b391776ac3014f545579a1831f3cf750e7..0000000000000000000000000000000000000000
--- a/sky/engine/bindings2/scripts/v8_utilities.py
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright (C) 2013 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-"""Functions shared by various parts of the code generator.
-
-Extends IdlTypeBase type with |enum_validation_expression| property.
-
-Design doc: http://www.chromium.org/developers/design-documents/idl-compiler
-"""
-
-import re
-
-from idl_types import IdlTypeBase
-import idl_types
-from v8_globals import includes
-import v8_types
-
-ACRONYMS = [
- 'CSSOM', # must come *before* CSS to match full acronym
- 'CSS',
- 'HTML',
- 'IME',
- 'JS',
- 'URL',
- 'WOFF',
- 'XML',
-]
-
-
-################################################################################
-# Extended attribute parsing
-################################################################################
-
-def extended_attribute_value_contains(extended_attribute_value, key):
- return (extended_attribute_value == key or
- (isinstance(extended_attribute_value, list) and
- key in extended_attribute_value))
-
-
-def has_extended_attribute(definition_or_member, extended_attribute_list):
- return any(extended_attribute in definition_or_member.extended_attributes
- for extended_attribute in extended_attribute_list)
-
-
-def has_extended_attribute_value(definition_or_member, name, value):
- extended_attributes = definition_or_member.extended_attributes
- return (name in extended_attributes and
- extended_attribute_value_contains(extended_attributes[name], value))
-
-
-def extended_attribute_value_as_list(definition_or_member, name):
- extended_attributes = definition_or_member.extended_attributes
- if name not in extended_attributes:
- return None
- value = extended_attributes[name]
- if isinstance(value, list):
- return value
- return [value]
-
-
-################################################################################
-# String handling
-################################################################################
-
-def capitalize(name):
- """Capitalize first letter or initial acronym (used in setter names)."""
- for acronym in ACRONYMS:
- if name.startswith(acronym.lower()):
- return name.replace(acronym.lower(), acronym)
- return name[0].upper() + name[1:]
-
-
-def strip_suffix(string, suffix):
- if not suffix or not string.endswith(suffix):
- return string
- return string[:-len(suffix)]
-
-
-def uncapitalize(name):
- """Uncapitalizes first letter or initial acronym (used in method names).
-
- E.g., 'SetURL' becomes 'setURL', but 'URLFoo' becomes 'urlFoo'.
- """
- for acronym in ACRONYMS:
- if name.startswith(acronym):
- return name.replace(acronym, acronym.lower())
- return name[0].lower() + name[1:]
-
-
-################################################################################
-# C++
-################################################################################
-
-def enum_validation_expression(idl_type):
- # FIXME: Add IdlEnumType, move property to derived type, and remove this check
- if not idl_type.is_enum:
- return None
- return ' || '.join(['string == "%s"' % enum_value
- for enum_value in idl_type.enum_values])
-IdlTypeBase.enum_validation_expression = property(enum_validation_expression)
-
-
-def scoped_name(interface, definition, base_name):
- # partial interfaces are implemented as separate classes, with their members
- # implemented as static member functions
- partial_interface_implemented_as = definition.extended_attributes.get('PartialInterfaceImplementedAs')
- if partial_interface_implemented_as:
- return '%s::%s' % (partial_interface_implemented_as, base_name)
- if (definition.is_static or
- definition.name in ('Constructor', 'NamedConstructor')):
- return '%s::%s' % (cpp_name(interface), base_name)
- return 'impl->%s' % base_name
-
-
-################################################################################
-# Specific extended attributes
-################################################################################
-
-
-# [CallWith]
-CALL_WITH_ARGUMENTS = {
- 'ScriptState': 'scriptState',
- 'ExecutionContext': 'executionContext',
- 'ScriptArguments': 'scriptArguments.release()',
- 'ActiveWindow': 'callingDOMWindow(info.GetIsolate())',
- 'FirstWindow': 'enteredDOMWindow(info.GetIsolate())',
- 'Document': 'document',
-}
-# List because key order matters, as we want arguments in deterministic order
-CALL_WITH_VALUES = [
- 'ScriptState',
- 'ExecutionContext',
- 'ScriptArguments',
- 'ActiveWindow',
- 'FirstWindow',
- 'Document',
-]
-
-
-def call_with_arguments(call_with_values):
- if not call_with_values:
- return []
- return [CALL_WITH_ARGUMENTS[value]
- for value in CALL_WITH_VALUES
- if extended_attribute_value_contains(call_with_values, value)]
-
-
-# [Exposed]
-EXPOSED_EXECUTION_CONTEXT_METHOD = {
- 'Window': 'isDocument',
-}
-
-
-def exposed(definition_or_member, interface):
- exposure_set = extended_attribute_value_as_list(definition_or_member, 'Exposed')
- if not exposure_set:
- return None
-
- interface_exposure_set = expanded_exposure_set_for_interface(interface)
-
- # Methods must not be exposed to a broader scope than their interface.
- if not set(exposure_set).issubset(interface_exposure_set):
- raise ValueError('Interface members\' exposure sets must be a subset of the interface\'s.')
-
- exposure_checks = []
- for environment in exposure_set:
- # Methods must be exposed on one of the scopes known to Blink.
- if environment not in EXPOSED_EXECUTION_CONTEXT_METHOD:
- raise ValueError('Values for the [Exposed] annotation must reflect to a valid exposure scope.')
-
- exposure_checks.append('context->%s()' % EXPOSED_EXECUTION_CONTEXT_METHOD[environment])
-
- return ' || '.join(exposure_checks)
-
-
-def expanded_exposure_set_for_interface(interface):
- exposure_set = extended_attribute_value_as_list(interface, 'Exposed')
- return sorted(set(exposure_set))
-
-
-# [ImplementedAs]
-def cpp_name(definition_or_member):
- extended_attributes = definition_or_member.extended_attributes
- if 'ImplementedAs' not in extended_attributes:
- return definition_or_member.name
- return extended_attributes['ImplementedAs']
« no previous file with comments | « sky/engine/bindings2/scripts/v8_types.py ('k') | sky/engine/bindings2/snapshot.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698