Currently, to provide services in Angular, you include them in an @NgModule
:
@Injectable()
#!/bin/sh | |
# Show the sorted list of tickets fixed between 2 given commits. | |
if [ $# -ne 2 ]; then | |
echo "USAGE: `basename $0` commit1id commit2id" | |
exit 1 | |
fi | |
git log --ancestry-path $1..$2 | egrep -i 'fix|fixes|fixed' | grep '#' | cut -f2 -d'#' | awk '{ printf "%d\n", $1 }' | sort |
(function () { | |
'use strict'; | |
const o = { | |
f: function () { | |
console.log(a); | |
} | |
}; | |
const a = 'aaa'; | |
o.f(); | |
})(); |
#!/bin/sh | |
# Usage: move this file to ~/bin/ and create a link ~/bin/psa-full -> psa. | |
# `psa STRING` will show you the output clipped to current number of columns in | |
# the terminal, `psa-full STRING` will give the full output. | |
# Tested on OS X 10.9-10.10. | |
if [[ "`basename "$0"`" == *-full ]]; then | |
COLS=10000 | |
else |
var tickets = [ | |
// List of tickets to migrate. | |
"http://bugs.jquery.com/ticket/XXXX", | |
"http://bugs.jquery.com/ticket/YYYY", | |
]; | |
var request = require('request'), | |
jsdom = require('jsdom'), | |
apiPrefix = 'https://api.github.com/repos/jquery/jquery/'; |
// The diff between the following two definitions has one line: `+c: 3,`: | |
var o1 = { | |
a: 1, | |
b: 2, | |
}; | |
var o1 = { | |
a: 1, | |
b: 2, | |
c: 3, | |
}; |
import template from './my-dummy.html'; | |
import './my-dummy.scss'; | |
const deps = new WeakMap(); | |
class MyDummyController { | |
constructor($timeout, $q) { | |
'ngInject'; | |
deps.set(this, {$timeout, $q}); | |
} |
// bizarguments is a v8 anomaly | |
function abc() { | |
return def(); | |
} | |
function def() { | |
return abc.arguments[0] * 2; | |
} | |
abc(50); // >> 100 |
var ngAppElem = angular.element(document.querySelector('[ng-app]') || document); | |
window.$injector = ngAppElem.injector(); | |
window.inject = $injector.invoke; | |
window.$rootScope = ngAppElem.scope(); | |
// getService('auth') will create a variable `auth` assigned to the service `auth`. | |
var getService = serviceName => | |
inject([serviceName, s => window[serviceName] = s]); |
All current versions of jQuery Mobile (JQM) as of 2019-05-04 are vulnerable to DOM-based Cross-Site Scripting (XSS) via crafted URLs. In JQM versions up to and including 1.2.1, the only requirement is that the library is included in a web application. In versions > 1.2.1, the web application must also contain a server-side API that reflects back user input as part of an HTTP response of any type. Practically all non-trivial web applications contain at least one such API.
Additionally, all current versions of JQM contain a broken implementation of a URL parser, which can lead to security issues in affected applications.