Can WebDriverJS be compiled without code minimization using Google Closure Compiler?

I am in need of customizing WebDriverJS to suit my specific requirements. However, I am encountering difficulties with debugging the compiled source code. Having descriptive function names and comments would greatly assist me! Therefore, I am curious to know if it is feasible to compile WebDriverJS without minimizing its content.

The build.desc for JavaScript compilation utilizes js_binary which relies on Google Closure Compiler. Is there anyone who knows how to compile it while preserving function names and comments? This would essentially involve merging all the sources rather than simply compiling them.

Answer №1

After reading a post by Chad on Stack Overflow about the differences between compiled and uncompiled Javascript, I decided to delve deeper into the flags of the closure compiler as mentioned in this link.

  • --compilation_level=WHITESPACE_ONLY
    allows for preservation of function and variable names.
  • --formatting=PRETTY_PRINT ensures that line breaks are not removed.
  • --formatting=PRINT_INPUT_DELIMETER
    provides a clearer overview of where to search for the source within files.

Although I encountered some difficulties in saving comments, it turned out to be a minor issue as I could easily reference them in the source code.

Update: I realized that using the compilation_level setting does not eliminate the goog.required-calls. I had to find a way to remove them in order for the script to function correctly.

Update 2: By eliminating all instances of goog.require($mod) and goog.provide($mod), and defining objects when necessary (usually right after the // Input $int comments), I was able to get everything working smoothly.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Navigating back to the app after saving contacts can be achieved using React Native and the react-native-contacts library

I am currently utilizing the react-native-contacts library in my React Native application to save a contact. Prior to saving the contact, I request WRITE permission from Android. The process is successful; I open the contact form within my app and proce ...

Adjusting iframe height based on its source URL using JQuery

Currently, I have implemented a script to adjust the height of YouTube iframes in order to maintain a 16:9 aspect ratio while keeping the width at 100% of the container. The challenge I am facing is ensuring that the script only affects YouTube videos and ...

Refresh the Google chart in response to a state change in Vuex

Currently, I am working on a reporting page that will display various graphs. Upon entering the page, an API request is made to retrieve all default information. The plan is to enable users to later select filters based on their inputs. For instance: init ...

Display additional content button, dynamic div identification

I've created a small script that includes a "show more" button at the end of displaying 10 entries. Here is the code: <div id="more<?=$lastid;?>"> <a onclick="showmore(<?=$lastid;?>);">More</a> </div> And here ...

Customize the color of the label and underline in a Reactjs material-ui TextField when the field input

https://i.stack.imgur.com/oJ2ah.png <TextField id="standard-full-width" label="Password" style={{ margin: 8 }} fullWidth margin="normal" placeholder="*******" /> Struggling to understand how to modify the color of the label ...

Which method is better for HTML5/JavaScript GeoLocation: Passing data to a callback function or suspending an async call using promises?

Trying to figure out how to utilize HTML5/Javascript Geolocations effectively for passing location data to an ajax call and storing it in a database. The main challenges I'm facing are the asynchronous nature of the Geolocation call and issues with va ...

Issues with relocating function during the NgOnInit lifecycle hook in an Angular 2 application

Currently, I am facing an issue with my Angular 2 app where the data sometimes lags in populating, causing a page component to load before the information is ready to display. When this happens, I can manually refresh the page for the data to appear correc ...

Using Vuex and array.findIndex but unable to locate a matching element

I am encountering an issue with the array.findIndex method. Despite being certain that there is a match in the array I am searching through, findIndex consistently returns -1. let index = state.bag.findIndex((it) => { it.id === item.id console. ...

How to automate clicking multiple buttons on the same webpage using Selenium with Python

As a Python and Selenium novice utilizing chromedriver, I find myself in need of assistance. The task at hand involves a web page that is unfortunately restricted from being accessed externally. This particular webpage hosts approximately 15 buttons with ...

JavaScript is utilized to implement the k-means clustering algorithm, which demonstrates convergence yet lacks stability in its

Although I understand the concept of convergence, I am puzzled by the fact that the results vary each time the algorithm is refreshed, even when using the same dataset. Can someone point out where my methodology might be incorrect? I've been strugglin ...

Issues arising from TypeScript error regarding the absence of a property on an object

Having a STEPS_CONFIG object that contains various steps with different properties, including defaultValues, I encountered an issue while trying to access the defaultValues property from the currentStep object in TypeScript. The error message indicated tha ...

unable to locate public folder in express.js

I recently created a basic server using Node.js with Express, and configured the public folder to serve static files. Within my main index.js file, I included the following code: const express = require('express'); const app = express(); const h ...

`Proliferating values through constantly changing addition`

I am facing an issue with my code that involves 3 input fields: <div class="row"> <input onblur="calc_basic_amount();" id="rate_basic"></input> <input onblur="calc_basic_amount();" id="qty_b ...

What is the method for instructing Python to keep extracting data despite not reaching the desired number of reviews?

Currently, I am working on a project where I am using Python to extract hotel reviews. I have a list of over 100 hotels, and my goal is to extract 1,500 reviews from each one. However, some hotels do not have that many reviews available. The issue arises w ...

What is the best way to locate the Vue component I need to share data with?

Seeking guidance on structuring my Vue app. It features an interactive map where users can click on items, triggering a side panel to display related information. The side panel is enclosed in a new Vue(...) instance (perhaps referred to as a Vue component ...

No input value provided

I can't figure out what's going wrong. In other js files, this code works fine. Here is my HTML code: <table class='table'> <tr> <th>Event</th><td><input class='for ...

Having trouble using a setTimeout() callback to display a Bootstrap Vue modal programmatically

I am currently working on a Vue CLI application (using the Webpack template) that utilizes Bootstrap Vue for displaying modal windows. In my Vue component's mounted() hook, I am attempting to programmatically show the modal by referencing the Bootstra ...

Enabling specific special characters for validation in Angular applications

How can we create a regex pattern that allows letters, numbers, and certain special characters (- and .) while disallowing others? #Code private _createModelForm(): FormGroup { return this.formBuilder.group({ propertyId: this.data.propertyId, ...

How to dynamically set a value in an AngularJS text field

Clicking "edit" will show the form in HTML below: <div ng-repeat="item in items"> <input type="text" placeholder="{{item.questionPlaceholder}}" ng-model="form.g1tags[item.tags_index]" required> <input ng-class="{'blockInput&apo ...

Identical IDs appearing in multiple buttons causing a conflict

I am currently loading content from external HTML files, specifically page1.html and page2.html. Although everything is the same except for the pictures and text, I am encountering an issue with the close button. It only closes page1.html.Feel free to chec ...