%PDF- %PDF-
Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/tools/turbolizer/src/ |
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/tools/turbolizer/src/node-label.ts |
// Copyright 2019 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. import { BytecodeOrigin, NodeOrigin } from "./origin"; import { BytecodePosition, SourcePosition } from "./position"; export class NodeLabel { id: number; label: string; title: string; live: boolean; properties: string; sourcePosition: SourcePosition; bytecodePosition: BytecodePosition; origin: NodeOrigin | BytecodeOrigin; opcode: string; control: boolean; opinfo: string; type: string; inplaceUpdatePhase: string; constructor(id: number, label: string, title: string, live: boolean, properties: string, sourcePosition: SourcePosition, bytecodePosition: BytecodePosition, origin: NodeOrigin | BytecodeOrigin, opcode: string, control: boolean, opinfo: string, type: string) { this.id = id; this.label = label; this.title = title; this.live = live; this.properties = properties; this.sourcePosition = sourcePosition; this.bytecodePosition = bytecodePosition; this.origin = origin; this.opcode = opcode; this.control = control; this.opinfo = opinfo; this.type = type; this.inplaceUpdatePhase = null; } public equals(that?: NodeLabel): boolean { if (!that) return false; if (this.id !== that.id) return false; if (this.label !== that.label) return false; if (this.title !== that.title) return false; if (this.live !== that.live) return false; if (this.properties !== that.properties) return false; if (this.opcode !== that.opcode) return false; if (this.control !== that.control) return false; if (this.opinfo !== that.opinfo) return false; return this.type === that.type; } public getTitle(): string { const propsString = this.properties.length == 0 ? "no properties" : `[${this.properties}]`; let title = `${this.title}\n${propsString}\n${this.opinfo}`; if (this.origin) { title += `\nOrigin: ${this.origin.toString()}`; } if (this.inplaceUpdatePhase) { title += `\nInplace update in phase: ${this.inplaceUpdatePhase}`; } return title; } public getDisplayLabel(): string { const label = `${this.id}: ${this.label}`; return label.length > 40 ? `${this.id}: ${this.opcode}` : label; } public setInplaceUpdatePhase(name: string): void { this.inplaceUpdatePhase = name; } }